私はこの声明を持っています:
if user = params[:user] && action == :delete
end
ユーザーが常に :delete に設定されるのはなぜですか?
ユーザーが渡した場合はユーザー名に設定し、それ以外の場合は nil に設定しないでください。
私はこの声明を持っています:
if user = params[:user] && action == :delete
end
ユーザーが常に :delete に設定されるのはなぜですか?
ユーザーが渡した場合はユーザー名に設定し、それ以外の場合は nil に設定しないでください。
()
期待どおりに評価されるようにするには、Rubyで割り当てを配置する必要があります
if (user = params[:user]) && action == :delete
end
&&
結合よりも強く結合します。and
かっこを省略したい場合は、代わりに使用できます。
if user = params[:user] and action == :delete
end
スタイルの問題として、=(割り当て)の戻り値を使用することは問題ありませんが、割り当てを括弧で囲みます。
# good - shows intended use of assignment
if (v = array.grep(/foo/)) ...
# bad
if v = array.grep(/foo/) ...
# also good - shows intended use of assignment and has correct precedence.
if (v = self.next_value) == 'hello' ...
and
条件式でのおよびの使用or
は推奨されていないため、IanBishopによって提案された解決策を使用することをお勧めします。