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