我有以下
has_many :administrators, :class_name => "User", :conditions => "role_id = 4"
它工作正常,但不使用外键
"role_id = 4"
我更愿意在角色表中指定实际的角色字符串,即外键与之相关,例如“Admin”
更新:
SELECT *
FROM users u, roles r
WHERE u.role_id = r.id
AND r.role = "Admin"
更新2
我不能做这样的事情:(这不起作用,但说明了我要做的事情)
has_many :administrators, :class_name => "User", :conditions => { :role => {:name => "Admin"}}
答案 0 :(得分:2)
想出来:
has_many :administrators, :class_name => "User", :conditions => {:roles => {:name => "Admin"}}, :include => :role
答案 1 :(得分:0)
尝试
怎么样?has_many :administrators, :class_name => "User", :conditions => "role_id = #{Role.find(:name => 'Admin')}"
假设角色表具有相应的模型。您使用的是特定框架或家庭烘焙授权吗?