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

时间:2014-05-13 20:04:45

标签: ruby-on-rails ruby

我有一种情况,我想在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中执行此操作的最佳方法是什么?

谢谢!

1 个答案:

答案 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