私は大きなレールプロジェクトに取り組んでいます。 (そこに他の変数のためにこれらのbefore_filter方法のトンが実際にしているが、私は、たとえば、このいずれかを使用しています)@current_user変数を設定するbefore_filterを使用するクラスの束があります。Railsのベストプラクティス:before_filterまたはapplication_controllerヘルパーメソッドを使用しますか?
before_filter :current_user
アプリケーションコントローラのCURRENT_USERメソッドを呼び出します。
class ApplicationController < ActionController::Base
def current_user
@current_user ||= session[:user_id].present? ? User.includes(:memberships).find(session[:user_id]) : nil
end
他のオプションはapplication_controllerヘルパーメソッドを使用することです:
class ApplicationController < ActionController::Base
helper_method :get_current_user
def get_current_user
@current_user ||= session[:user_id].present? ? User.includes(:memberships).find(session[:user_id]) : nil
end
その後、私はすべて交換してくださいヘルパーメソッドを呼び出して、アプリで@current_user参照:
get_current_user
これは右、メソッドだけそれが必要だ方法やビューに呼び出されることを保証しますか! before_filterを使用することによるパフォーマンス上の利点はありますか?
「get_current_user」と呼ぶ必要はありません。典型的なRubyコードでは、 'get_'部分は冗長です。ここでの唯一の違いは、あなたがそれを強制的にロードしていることです。これは、遅延読み込みの目的に反するものです。 – tadman