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
的有趣用法:)我不同意重复-多级嵌套哈希的可能重复不是这个问题的主题。我不同意重复-多级嵌套哈希的可能重复不是这个问题的主题。