0

我继承了一个非常奇怪的表格布局:

callbacks
id, note, user

admin
id, name, password

在回调中,用户被设置为管理员的名字而不是实际的 ID。现在我需要能够调用callbacks.user并让 Rails 使用该名称查找管理员,然后将其绑定到该记录。

我有一个模型admin叫做users

我该怎么做呢?

4

1 回答 1

2

您可以覆盖默认方法。

def user
  User.find_by_name(user_name)
end

def user=(obj)
  self.user_name = obj.name
end

def user_name
  self[:user]
end

def user_name=(name)
  self[:user] = name
end

其他选项,为了使其工作belongs_to,有primary_key选项,但需要具有与属性不同的名称user

 # Callback.rb
 belongs_to :user_model , :class => "User", :foreign_key => :user, :primary_key => :name

 # User.rb
 has_one :callback , :foreign_key => :user, :primary_key => :name
于 2013-09-24T08:35:05.880 回答