我该怎么办?
if params[:property] == nil
@item.property = true
else
@item.property = false
总是忘记在一行中编写它的正确语法。
在PHP中它会是这样的:
@item.property=(params[:property]==nil)true:false
在rails中是否相同?
答案 0 :(得分:14)
使用三元运算符:
@item.property = params[:property] ? true : false
或强制进行布尔转换(“not not”操作):
@item.property = !!params[:property]
注意:在ruby中,使用真正的布尔值是一个常见的习惯用法 ,因为false
或nil
以外的任何对象都会计算为true
。
答案 1 :(得分:0)
m_x答案是完美的,但您可能有兴趣知道其他方法,在其他情况下可能看起来更好:
if params[:property] == nil then @item.property = true else @item.property = false end
或
@item.property = if params[:property] == nil then true else false end