Devise如何使current_user对控制器和视图都可用?

时间:2015-01-14 18:24:25

标签: ruby-on-rails devise

Devise通过什么机制使current_user方法可用于Rails中的控制器和视图?我看过source,但不知道他们是怎么做的。

1 个答案:

答案 0 :(得分:3)

使用helper_method,如您所见:helpers.rb和吼叫:

ActiveSupport.on_load(:action_controller) do
  helper_method "current_#{mapping}", "#{mapping}_signed_in?", "#{mapping}_session"
end

如果您按current_user搜索该文件,则无法找到任何内容,因为设计使用mapping占位符允许您执行以下操作:

rails generate devise User # this will generate 3 helpers: current_user, user_signed_in? and user_session

rails generate devise Blogger # this will generate 3 helpers: current_blogger, blogge_signed_in? and blogger_session