if params[:parent_type] == "Order"
parent_id = nil
else
parent_id = params[:parent_id]
end
Rubyの人は、このように書いたことで私を笑わせるでしょうか?私が見たRubyコードのように、特に簡潔ではないようです。
それは私には完全に合理的に見えます。if()の前に割り当てを移動するparent_id = if params...
か、3項を使用することもできますが、結果が良くなるとは思いません。
その行の前にparent_idがnilまたはundefinedの場合は、次のように記述できます。
parent_id = params[:parent_id] unless params[:parent_type] == "Order"
現状のままでは何も問題はありませんが、より簡潔にすることができます。
parent_id = (params[:parent_type] == "Order") ? nil : params[:parent_id]
または:
parent_id = if (params[:parent_type] == "Order")
nil
else
params[:parent_id]
end
そのままでいいと思います。私はRubyの人で、そのように書いたことであなたを笑わせることはありません。コードが何をするのかは明らかで、実際のコードの重複はないので、心配する必要はありません。
好き:
parent_id =(params [:parent_type] == "Order"?nil:params [:parent_id])
もう1つのバリエーション:
parent_id = (params[:parent_type] == "Order") && params[:parent_id]
Rubyの三項演算子を使用できます。それのようなもの:
parent_id = params[:parent_type] == "Order" ? nil : params[:parent_id]
が値でparent_id
設定されてnil
いる場合、unless構文を記述できます。
parent_id = params[:parent_id] unless params[:parent_type] == "Order"
または、単純なRuby if-elseを、別の方法で記述します。
parent_id = if (params[:parent_type] == "Order")
nil
else
params[:parent_id]
end