单行赋值:If(condition)variable = value1 else value2

use*_*058 4 ruby-on-rails

我该怎么办?

if params[:property] == nil 
 @item.property = true
else 
 @item.property = false
Run Code Online (Sandbox Code Playgroud)

总是忘记在一行中编写它的正确语法.

在PHP中它将是这样的:

@item.property=(params[:property]==nil)true:false
Run Code Online (Sandbox Code Playgroud)

在铁轨中是否相同?

m_x*_*m_x 14

使用三元运算符:

@item.property = params[:property] ? true : false
Run Code Online (Sandbox Code Playgroud)

或强制进行布尔转换("not not"操作):

@item.property = !!params[:property]
Run Code Online (Sandbox Code Playgroud)

注意:在ruby中,使用真正的布尔值是一种常见的习语,就像任何除了falsenil评估的对象一样true.