'message'的未定义方法unique_id - rails_admin错误

时间:2013-10-27 17:38:15

标签: devise ruby-on-rails-4 rails-admin

我有一个具有以下关联的用户模型和消息模型

用户模型user.rb

  has_many :sent_messages, dependent: :destroy,
  :class_name => 'Message',
  :primary_key=>'unique_id',
  :foreign_key => 'sender_id',
  :order => "messages.created_at DESC",
  :conditions => ["messages.sender_deleted = ?", false]

  has_many :received_messages, dependent: :destroy,
  :class_name => 'Message',
  :primary_key=>'unique_id',
  :foreign_key => 'recepient_id',
  :order => "messages.created_at DESC",
  :conditions => ["messages.recepient_deleted = ?", false]

消息模型message.rb

belongs_to :sender,
  :class_name => 'User',
  :primary_key => 'unique_id',
  :foreign_key => 'sender_id'
  belongs_to :recepient,
  :class_name => 'User',
  :primary_key => 'unique_id',
  :foreign_key => 'recepient_id'

在我的管理面板中使用rails_admin,当我尝试编辑用户详细信息时,我收到以下错误undefined method unique_id for #<Message:0x00000005b5efa0>

Extracted source (around line #10):
7 selected = [config.abstract_model.get(related_id)]
8     else
 9      selected = form.object.send(field.name)
 10    end
 11    selected_ids = selected.map{|s| s.send(field.associated_primary_key)}
 12  
 13    current_action = params[:action].in?(['create', 'new']) ? 'create' : 'update'

任何有帮助的人,我都非常感激。

我正在使用gem devise来管理用户,使用rails_admin来管理admin

1 个答案:

答案 0 :(得分:0)

您引用的数据库表没有列unique_id。你可能忘了迁移某些东西,或者只是一个错误的配置。