【问题标题】:How does Devise make current_user available to both controllers and views?Devise 如何使 current_user 对控制器和视图都可用?
【发布时间】:2015-01-14 18:24:24
【问题描述】:

Devise 通过什么机制使 Rails 中的控制器和视图都可以使用 current_user 方法?我查看了source,但不知道他们是如何做到的。

【问题讨论】:

    标签: ruby-on-rails devise


    【解决方案1】:

    通过使用helper_method,您可以在此处看到:helpers.rb 和下面的:

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

    如果您通过 current_user 搜索该文件,您将找不到任何内容,因为 devise 使用 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-13
      • 1970-01-01
      • 2012-03-21
      • 2020-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多