选择查询到db

时间:2013-02-27 21:05:55

标签: sql ruby-on-rails cancan

我想执行一个SQL查询并将结果应用到我的能力类:

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

sql应该从Typ Sportler返回对象,我可以将它应用于cancan:

can :manage, **:sportler**

1 个答案:

答案 0 :(得分:1)

我不确定我理解你的问题,但也许这可以帮助你一点点:

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

此代码含有以下内容:

  • 培训师has_many
  • belongs_to培训师
  • belongs_to用户
  • role是User表的一列 (joinsincludes中的不同关系(以及where子句中的等式)可能需要复数,具体取决于您的对象关系)