Jam*_*aal 2 ruby ruby-on-rails
我有一种情况,我想在Rails应用程序的所有视图中使用一个方法的实例变量,我想知道什么是'Rails'的方式来做到这一点.
如果我有这种情况我在我的代码中有这样的代码subscriptions_controller.rb:
def index
@subscriptions = current_user.subscriptions
end
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能使这个实例变量可供我使用application.html.erb?我试过这样做但它不起作用:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
def index
@subscriptions = current_user.subscriptions
end
end
Run Code Online (Sandbox Code Playgroud)
该@subscriptions实例变量是零,我也不太清楚为什么.在Rails中执行此操作的最佳方法是什么?
谢谢!
尝试使用设置你的实例变量before_filter在您ApplicationController:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_filter :set_subscriptions
def set_subscriptions
return if current_user.nil?
@subscriptions ||= current_user.subscriptions
end
end
Run Code Online (Sandbox Code Playgroud)