通过什么机制, Devise使得current_user方法可用于Rails中的控制器和视图? 我查看了源代码,但没看到他们是如何做到的。

#1楼 票数:3 已采纳

通过使用helper_method ,如下所示: helpers.rb和bellow:

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

  ask by Yarin translate from so

未解决问题?本站智能推荐:

1回复

current_user使用Devise在控制器中返回TrueClass而不是User

我在Rails 2.3.8项目上使用Devise 1.0.8。 在我的控制器测试中,我有: 在控制器本身中,有以下before_filter: 这是我测试的输出: 因此,当我在测试中使用sign_in时,current_user为true。 但是当我不这样做时,cur
2回复

在所有关联的控制器中使用Devise的current_user

我对良好做法有疑问。 我即将为授权实施(刚刚开始)Pundit。 但是,在我的控制器中,说“项目和阶段”,我正在使用current_user将所有调用关联起来。 例如 我将有更多与用户(或许多用户)相关联的关联。 以上是确保用户只能查看允许其浏览的项目的好方法吗? 因此,不需要
1回复

如何测试使用来自Devise的current_user的信息的控制器方法?

我正在尝试测试从devise的current_user获取user_id的控制器方法。 在其他已回答的问题之后,我尝试使用User mock_up登录,但是它给我带来了与#<RSpec :: Core :: ExampleGroup :: Nested_1 :: Nested_1:0
1回复

devise和current_user

我有一个Rails 3应用,我正在尝试实现devise和clarativeative_authorization。 声明性授权的重要部分是用户模型中函数“ role_symbols”的存在。 由于我实现角色的方式,我在User模型中实现了一个实例方法来跟踪值(如下称为foo): 然后
1回复

Devise的current_user在ApplicationController中为nil,但不在其他控制器中(使用简单令牌身份验证)

我有一个在Rails 3.2.22应用程序中运行了+1年,该应用程序使用Devise来验证用户身份。 我正在尝试实现令牌身份验证,因此我可以使用名为简单令牌身份验证的宝石https://github.com/gonzalo-bulnes/simple_token_authenticatio
1回复

通过rails 4中的控制器将current_user关联

我正在尝试通过控制器将current_user.id关联到@patient.medic_id 。 我尝试在我的控制器中: 这将自动使用current_user.id填充medic_id中的medic_id ,但是当我提交表单活动记录时,不会保存患者的其他参数,例如name , la
1回复

Rails Devise在控制器中访问current_user的问题

我正在使用Devise进行身份验证的Rails和Angular应用程序上工作。 我在控制器的index操作中访问current_user时遇到问题。 我需要显示属于特定用户的列表。 当我转到索引时,这将返回一个无方法错误: 如果将“ index”操作更改为List.all
1回复

为什么Devise的“current_user”在模型层不可用?

有许多关于Devise的帖子以及缺乏“current_user”用于模型的可用性。 在这里和其他地方发布了大量的工作。 但是,我没有在任何帖子中找到“为什么”的答案。 这是安全问题吗? 如果没有,为什么?