相关疑难解决方法(0)

在Ruby中,|| =(or-equals)是什么意思?

以下代码在Ruby中的含义是什么?

||=
Run Code Online (Sandbox Code Playgroud)

它的语法是否有任何意义或原因?

ruby operators

325
推荐指数
9
解决办法
9万
查看次数

检查是否在SASS中定义了变量

正如标题所示我试图检查是否在SASS中定义了一个变量.(如果有任何不同的差异,我正在使用指南针)

我找到了Ruby等价物,它是:

defined? foo
Run Code Online (Sandbox Code Playgroud)

在黑暗中给了一枪,但它只是给了我错误:

defined": expected "{", was "?

我找到了一个解决方法(显然只是在所有情况下定义变量,在这种情况下它实际上更有意义)但我真的想知道这是否可能在未来

ruby sass

51
推荐指数
2
解决办法
4万
查看次数

如果变量在ruby/erb中定义,则回显

可能重复:
检查Ruby中是否定义了变量

使用Tilt的模板render方法,我传入

#... t setup ...
t.render(self, { :a => 'test', :b => 'again' })
Run Code Online (Sandbox Code Playgroud)

在我的 template.erb

<%= a %>
<%= b %>
Run Code Online (Sandbox Code Playgroud)

说我:b从传递给模板的哈希中删除.渲染将失败,因为:b未定义.

在PHP中,我可以去:

<?= isset($foo) ? $foo : '' ?>
Run Code Online (Sandbox Code Playgroud)

是否有任何干净的方式(在ruby/erb中)"echo if"?

我试过,<%= b.nil? ? b : '' %>但这显然是错误的..任何帮助将不胜感激

ruby erb

15
推荐指数
2
解决办法
2万
查看次数

Capistrano在Task中检查未定义的变量

在使用多阶段扩展的Capistrano中,我有两个环境:prod和testing.

我需要在prod.rb中不需要的tests.rb中的一些变量,我希望我的一些任务能够检查变量是否已定义并在其中使用它,但如果未设置则忽略它.

所以,在testing.rb中我会有类似的东西:

set :foo, 'bar'
Run Code Online (Sandbox Code Playgroud)

prod.rb不会引用:foo,因为它不需要它.在我的一项任务中,我想做的事情如下:

if defined?(foo)
  # do something with foo
else
  # do something without foo
end
Run Code Online (Sandbox Code Playgroud)

但我一直收到错误:

undefined local variable or method 'foo'
Run Code Online (Sandbox Code Playgroud)

有没有办法在任务中测试未定义的全局变量?或者我必须做以下事情:

set :foo, ''
Run Code Online (Sandbox Code Playgroud)

在我的所有环境中,不需要:foo变量?

ruby capistrano

10
推荐指数
1
解决办法
4867
查看次数

Ruby - 如果变量不存在,我该如何处理它?

我想要做 puts blob

但如果blob变量不存在,我得到

NameError: undefined local variable or method `blob' for main:Object
Run Code Online (Sandbox Code Playgroud)

我试过了

blob?  
blob.is_a?('String')
puts "g" if blob  
puts "g" catch NameError
puts "g" catch 'NameError'
Run Code Online (Sandbox Code Playgroud)

但没有工作.

我可以通过使用@instance变量来绕过它,但这就像我应该知道的那样作弊并且相应地处理没有价值的问题.

ruby

4
推荐指数
1
解决办法
2677
查看次数

标签 统计

ruby ×5

capistrano ×1

erb ×1

operators ×1

sass ×1