私はマイケル・ハートルによってruby on railsチュートリアル以下だとcondintionあれば、彼は内部の代入演算子を使用していますどのように私は取得しない:ルビーon Railsのチュートリアルであれば(USER_ID =セッション[:user_idを])
if (user_id = session[:user_id])
@current_user ||= User.find_by(id: user_id)
end
ことができる誰かしてくださいその背後にある論理を説明してください。
全く同じではありません。最初の例では、user_idのスコープはifの本体です。後者では、user_idはifの後にも定義されます。 – Ursus
@Ursus:間違っています。それをirbで試してみてください。 'if'はRubyのスコープゲートではありません。新しいスコープは、クラス、モジュール、またはメソッドを定義するたびに作成されます。スコープゲートのセクションの詳細はこちらhttp://hopsoft.github.io/blog/ruby-metaprogramming-idioms/ – kiddorails
私は答えの前にirbを試しました。うーん。 – Ursus