2013-02-27 2 views
0

Я хочу, чтобы выполнить SQL-запрос и применить результат к моей способности класса:Select-запроса к БД

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

СКП должен возвращать объекты из Typ Sportler, что я могу применить его к канкан:

can :manage, **:sportler** 
+0

Я не могу подготовить свое предчувствие. Итак: у меня есть идея: может быть, это, но это только для одного класса. People.find_all_by_trainer_id_and_user_id (не null, 2), но нет никакого отношения к пользователю – ubuseral

+0

Вам не хватает соединения в таблице пользователя. –

+0

Пожалуйста, прекратите добавлять теги к теме вопроса. –

ответ

1

Я не уверен, что понял ваш вопрос, но, возможно, это может помочь вам немного:

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

Этот код implis следующее:

  • Тренер has_many Люди
  • Люди belongs_to Trainer
  • Люди belongs_to пользователя
  • role является столбец таблицы пользователя (различные отношения в joins и includes (и поэтому в где предложение) может потребоваться плюрализация в зависимости от ваших объектных отношений)
+0

Хорошие рельсы имеют свой собственный синтаксис. Я сделал это myTrainer = People.joins .... И тогда я хочу установить это в cancan: can: manage, myTrainer будет работать? – ubuseral

+0

Знаете ли вы, что это хорошо? – ubuseral

+0

Здесь я предполагаю: https://github.com/ryanb/cancan/wiki – MrYoshiji

Смежные вопросы