私は次のapplication_controllerメソッドを持っています:
def current_account
@current_account ||= Account.find_by_subdomain(request.subdomain)
end
before_filterまたはhelper_methodを使用して呼び出す必要がありますか?この2つの違いは何ですか?この場合のトレードオフに関して何を考慮する必要がありますか?
ありがとう。
より明確にするための更新
ビューからコントローラー定義のメソッドを呼び出すことができるという点で、のbefore_filter
代わりにユーザーを使用できることがわかりました。helper_method
おそらくそれは私が自分のコードをどのように配置したかということなので、これが私が持っているものです:
controllers / application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
before_filter :current_account
helper_method :current_user
end
helpers / sessions_helper.rb
module SessionsHelper
private
def current_account
@current_account ||= Account.find_by_subdomain(request.subdomain)
end
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def logged_in?
if current_user
return true
else
return false
end
end
end
controllers /spaces_controller.rb
class SpacesController < ApplicationController
def home
unless logged_in?
redirect_to login_path
end
end
end
ビュー/スペース/home.html.erb
<%= current_account.inspect %>
理論的には、これは機能しないはずですよね?