0

SQL クエリを実行し、その結果を自分の能力クラスに適用したい:

res_sql = "SELECT * FROM people 
             where trainer_id != null and people.user_id = user.id 
             and user.role = 'Trainerone'"

SQL は、cancan に適用できる Typ Sportler からオブジェクトを返す必要があります。

can :manage, **:sportler**
4

1 に答える 1

1

あなたの質問を理解できたかどうかはわかりませんが、これが少し役立つかもしれません:

People.joins(:trainer).
       includes(:user).
       where(user_id: user.id, user: { role: 'Trainerone' })

このコードは次のことを意味します。

  • トレーナーのhas_many
  • ピープルbelongs_toトレーナー
  • ピープルbelongs_toユーザー
  • roleUser テーブルの列です (オブジェクトの関係に応じて、 joinsand includes(および where 句のように) のさまざまな関係を複数形にする必要がある場合があります)。
于 2013-02-27T21:14:16.167 に答える