Authentication 如何从模型中访问和设计当前用户

Authentication 如何从模型中访问和设计当前用户,authentication,devise,Authentication,Devise,刚开始使用Desive for my app authentication进行开发,但是在从模型访问当前用户时遇到了麻烦。我从控制器上访问这个没有问题 对于我的场景,我需要获取当前用户id以跟踪谁编辑了博客文章,我在保存过滤器之前使用该用户id保存博客文章 谢谢你的帮助 谢谢您只能在参数中传递它 class SomeModel def my_nifty_method(user) end end 在控制器中: class SomeModelsController < Applic

刚开始使用Desive for my app authentication进行开发,但是在从模型访问当前用户时遇到了麻烦。我从控制器上访问这个没有问题

对于我的场景,我需要获取当前用户id以跟踪谁编辑了博客文章,我在保存过滤器之前使用该用户id保存博客文章

谢谢你的帮助


谢谢

您只能在参数中传递它

class SomeModel 
  def my_nifty_method(user)
  end
end
在控制器中:

class SomeModelsController < ApplicationController
  def some_method
    sm = SomeModel.new
    sm.my_nifty_method(current_user)
  end
end
class-SomeModelsController
您应该能够在您的模型中执行此操作。”这里是模型对象,在创建或保存之前设置它的user_id属性

before_create {|c| c.user_id = Authorization.current_user.id}

我对RoR有些陌生,所以请注意。

为什么您要尝试在模型中访问该方法?
您可以通过
self.ID
(在模型中)

self.ID
返回当前实例的ID,而不是当前用户的ID是,问题是:“…我需要获取当前用户ID…”否,问题是关于
当前用户的id
问题很可能适用于用户模型以外的模型,因此
self.id
返回用户以外的对象的id。这就是为什么你投了反对票。