开发者

When do before_filters in application_controller get called? Strange issue

I have developed a plugin. The plugin has a declaration that can be added to the application controller like so:

class ApplicationController < ActionController::Base

  set_something_to(Account.first)
end

That all works as expected. However, when I use a before_filter to dynamically fetch a value to set, like so:

class ApplicationController < ActionController::Base

  before_filter :get_account
  set_something_to(@account)

  protected
    def get_account
      @开发者_如何学JAVAaccount = Account.first
    end
end

This does not work. The value that gets passed to the set_something_to declaration is nil. Why is the value nil? What would be the correct way of dynamically passing in a value?

Thanks for your time. Erwin


Before filters are called before each action. If you want your set_something_to(@account) to work correctly, you should put it in a before filter as well. For example:

class ApplicationController < ActionController::Base

  before_filter :configure_account

  protected

    def configure_account
      @account = Account.first
      set_something_to(@account)
    end

end
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜