5

どうすればこのようなことができますか?

if params[:property] == nil 
 @item.property = true
else 
 @item.property = false

1行で書くための適切な構文を常に忘れてください。

PHPでは、次のようになります。

@item.property=(params[:property]==nil)true:false

Railsでも同じですか?

4

2 に答える 2

14

三項演算子を使用します。

@item.property = params[:property] ? true : false

またはブール変換を強制します(「notnot」操作):

@item.property = !!params[:property]

注:ルビーでは、またはに評価されるオブジェクト以外のオブジェクトとして、真のブール値を使用しないのが一般的なイディオムです。falseniltrue

于 2012-12-08T11:35:00.750 に答える
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
于 2012-12-08T12:30:57.797 に答える