我想测试一下。如果false
执行此操作。我希望不是真的,只是假的。我的代码看起来像这样,我只需要做错误的事情:
if Model.exists?(table_column: 'joe')
# this part is blank
else
# run this code
end
我的代码在else
之后运行,这就是我想要的。是否有一个干净的rails / ruby方法测试错误?我的代码只会在错误的情况下运行,而不是真的。
如果重复,我很乐意删除。感谢
答案 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
则不会出现。)