我有一种情况,我想在Rails应用程序的所有视图中使用方法中的实例变量,我想知道'Rails'的方法是什么。
如果我遇到这种情况,我会在subscriptions_controller.rb
中使用此代码:
def index
@subscriptions = current_user.subscriptions
end
如何使我的application.html.erb
可以使用此实例变量?我试过这样做,但它不起作用:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
def index
@subscriptions = current_user.subscriptions
end
end
@subscriptions
实例变量为零,我不太清楚为什么。在Rails中执行此操作的最佳方法是什么?
谢谢!
答案 0 :(得分:5)
尝试使用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