检查是否为false然后运行代码

时间:2016-08-31 07:09:12

标签: ruby-on-rails ruby ruby-on-rails-5

我想测试一下。如果false执行此操作。我希望不是真的,只是假的。我的代码看起来像这样,我只需要做错误的事情:

if Model.exists?(table_column: 'joe')
  # this part is blank
else
# run this code
end

我的代码在else之后运行,这就是我想要的。是否有一个干净的rails / ruby​​方法测试错误?我的代码只会在错误的情况下运行,而不是真的。

如果重复,我很乐意删除。感谢

2 个答案:

答案 0 :(得分:5)

使用unless

unless Model.exists?(table_column: 'joe')
  # run code
end

if not

if not Model.exists?(table_column: 'joe') 
  # run code
end

if Model.find_by(table_column: 'joe').blank?
  # run code
end

希望有所帮助!

答案 1 :(得分:1)

添加其他一些热门选择(@RSB:随意将这些选项复制到您的答案中):

使用'!':

if !Model.exists?(table_column: 'joe')
  # A single '!' negates
end

使用'==':

if Model.exists?(table_column: 'joe') == false
  # compared against false
end

请注意,这些方法存在轻微(但可能是戏剧性的)差异,在网络上搜索“falsey”,“truthy”或“真实性”以及您最喜欢的编程语言。

选择哪种解决方案很大程度上取决于您的风格和手头的表达方式(例如my_value == false非常明确,如果my_value = nil则不会出现。)