2

私は次のものを持っています

has_many :administrators, :class_name => "User", :conditions => "role_id = 4"

正常に動作しますが、外部キーを使用する代わりに

"role_id = 4"

その外部キーが関連する役割テーブルで実際の役割文字列を指定することをお勧めします。たとえば、「管理者」などです。

アップデート:

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"}}
4

2 に答える 2

2

理解した:

has_many :administrators, :class_name => "User", :conditions => {:roles => {:name => "Admin"}}, :include => :role
于 2011-05-26T13:32:46.580 に答える
0

試してみてはどうですか

has_many :administrators, :class_name => "User", :conditions => "role_id = #{Role.find(:name => 'Admin')}" 

ロール テーブルに対応するモデルがあると仮定します。特定のフレームワークまたは自家製の認証を使用していますか?

于 2011-05-26T08:31:31.350 に答える