我继承了一个非常奇怪的表格布局:
callbacks
id, note, user
admin
id, name, password
在回调中,用户被设置为管理员的名字而不是实际的 ID。现在我需要能够调用callbacks.user
并让 Rails 使用该名称查找管理员,然后将其绑定到该记录。
我有一个模型admin
叫做users
我该怎么做呢?
我继承了一个非常奇怪的表格布局:
callbacks
id, note, user
admin
id, name, password
在回调中,用户被设置为管理员的名字而不是实际的 ID。现在我需要能够调用callbacks.user
并让 Rails 使用该名称查找管理员,然后将其绑定到该记录。
我有一个模型admin
叫做users
我该怎么做呢?
您可以覆盖默认方法。
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