Rails 3アプリケーションコントローラーまたはヘルパー内のセッターとゲッターの使い勝手についてちょっと混乱します。 なぜ、インスタンス変数だけでなく、コントローラメソッド(またはモジュール)でセッターとゲッターを使用するのでしょうか。誰かが例を挙げることはできますか? セッターとゲッタを使用するのが賢明ですか?それはいつ必要ですか?例えばRuby on Rails 3:セッターとゲッターとコントローラーメソッドの内部
、マイケル・ハートルによってRailsの3チュートリアルのRubbyは、それは(ページ347)言う:
モジュールSessionsHelper
def current_user=(user)
@current_user = user
end
def current_user
@current_user ||= user_from_remember_token
end
理由だけではなく、最初の場所で@current_user
を使用していません。
私の2番目の質問は、コントローラメソッド内の自己の意味です。たとえば :
Class SessionsController < ApplicationController
def sign_in?
cookies.permanent.signed[:remember_token] = [user.id, user.salt]
self.current_user= user
end
end
私はUserモデルクラス内部の自己は、ユーザー自身 を指し、しかし、それはコントローラ内部にあるとき、それが何を参照しないことを知っていますか? 例はありますか?
はself
は、コントローラ自体を指し、コントローラ内部であなたに