Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在检查特定属性之前,先检查哈希值是否为零_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 在检查特定属性之前,先检查哈希值是否为零

Ruby on rails 在检查特定属性之前,先检查哈希值是否为零,ruby-on-rails,ruby,Ruby On Rails,Ruby,我现在正在做的是 "Hello" if options && options[:greet] 我想做的是把那条线剪掉。如果options为零,options[:greet]显然也将为零。Ruby/Rails是否提供了提供这种“哈希检查”功能的方法?或者也许有一种更简洁的写作方法?我认为这句话很好 也许有必要确保始终设置选项。如果选项作为参数传递给方法,则可能需要设置默认值: def method_name(options = {}) 或者,如果在开始使用nil选项之前,您可能

我现在正在做的是

"Hello" if options && options[:greet]

我想做的是把那条线剪掉。如果
options
为零,
options[:greet]
显然也将为零。Ruby/Rails是否提供了提供这种“哈希检查”功能的方法?或者也许有一种更简洁的写作方法?

我认为这句话很好

也许有必要确保始终设置
选项。如果
选项
作为参数传递给方法,则可能需要设置默认值:

def method_name(options = {})
或者,如果在开始使用
nil
选项之前,您可能希望使用空哈希值初始化它们:

options ||= {}
Rails还提供了
try
方法,在
nil
上调用方法时不会失败:

options.try([], :greet)

我认为这条线很好

也许有必要确保始终设置
选项。如果
选项
作为参数传递给方法,则可能需要设置默认值:

def method_name(options = {})
或者,如果在开始使用
nil
选项之前,您可能希望使用空哈希值初始化它们:

options ||= {}
Rails还提供了
try
方法,在
nil
上调用方法时不会失败:

options.try([], :greet)

还有一个快捷方式,当我无法控制
选项
变量(即,它可能是nil或hash)时,我倾向于更频繁地使用它:


请注意,它只起作用。

还有一个快捷方式,当我无法控制
选项时,我倾向于更频繁地使用它(即,它可以是nil或hash):


请注意,它只起作用。

谢谢,我是用
options=nil
初始化的,并没有真正考虑将其设置为空哈希的可能性。
try
的有趣用法:)谢谢,我是用
options=nil
初始化的,并没有真正考虑将其设置为空哈希的可能性。
try
的有趣用法:)我不同意重复-多级嵌套哈希的可能重复不是这个问题的主题。我不同意重复-多级嵌套哈希的可能重复不是这个问题的主题。