如何在Rails中为application.html.erb文件提供实例变量?

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中执行此操作的最佳方法是什么?

谢谢!

Chr*_*det 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
Run Code Online (Sandbox Code Playgroud)