1

最初にいくつかのコードを示してみましょう。後でActiveRecordとRailsを使用してeager load条件を遅延ロードする方法

class User 
    has_and_belongs_to_many :roles 
    named_scope :employees, { :conditions => ["roles.name = 'Employee'"], :include => :roles } 
end 

いいえ、コントローラの後で、すべての従業員を正しく検索したいと思っていました。名前付きスコープを設定して、結合と条件付き検索でそれを行うのを助けます。しかし、問題は私がそのユーザーロールのすべてを表示したいという見解ですが、従業員ロールだけが表示されます。

"user.roles"と言ってもいいですか?すでに読んでいて、それを読み込めたら、ビューに怠け者がロードされていますか?

答えて

2

habtm(だけでなく、has_many)のドキュメントには、オプションのパラメータを使用してコレクションにアクセスできることを述べている:

コレクション(force_reload = false)を

関連するすべてのオブジェクトの配列を返します。 。何も見つからない場合は空の配列 が返されます。

user.roles(true)でロールをリロードできます。

+0

あなたは素晴らしいです。私はそれが存在することを知らなかった。私はもう少し徹底的にドキュメントを読むべきだったと思います。 お返事ありがとうございます! – taelor

関連する問題