模型:未定义的局部变量或方法“current_user”

mig*_*igu 4 ruby-on-rails devise rails-admin

我是 Rails、Rails_Admin 和 Devise 的新手。尝试在模型中获取 current_user,我认为应该由 Devise 提供:

class Item < ActiveRecord::Base
  attr_accessible :user_id
  belongs_to :user, :inverse_of => :items

  after_initialize do
    if new_record?      
      self.user_id = current_user.id unless self.user_id
    end                                
  end  
end
Run Code Online (Sandbox Code Playgroud)

在 Rails_Admin 中我得到:

undefined local variable or method `current_user' for #<Item:0x007fc3bd9c4d60>
Run Code Online (Sandbox Code Playgroud)

与相同

self.user_id = _current_user.id unless self.user_id
Run Code Online (Sandbox Code Playgroud)

我看到 config/initializers/rails_admin.rb 中有一行,但不确定它的作用:

  config.current_user_method { current_user } # auto-generated
Run Code Online (Sandbox Code Playgroud)

Fir*_*ari 6

current_user 不属于模型。这个答案有一些解释。

Rails 3 设计,模型中无法访问 current_user ?