Rails 3, как сделать запрос с ассоциацией habtm - PullRequest
0 голосов
/ 24 декабря 2011

Мне нужно вывести набор наград в переменную экземпляра:

@corp = Award.find(:all, :conditions => ["award.category_id = ?", "2" ])

Награда <= => НаградыКатегории <= => Категории

Я пытаюсь найти все награды, которые имеют категорию X

Интересно отметить, что мой Award.category_id равен нулю, но AwardsCategory.category_id и award_id установлены.

Ошибка возвращается:

ActiveRecord::StatementInvalid in PagesController#award_cat

PGError: ERROR:  missing FROM-clause entry for table "award"
LINE 1: SELECT "awards".* FROM "awards"  WHERE (award.category_id = ...
                                                ^
: SELECT "awards".* FROM "awards"  WHERE (award.category_id = '2')

Любые идеи и счастливого Рождества

1 Ответ

1 голос
/ 24 декабря 2011

Для получения награды habm не требуется category_id (в конце концов, если она использовалась, как награда может иметь несколько категорий?)

Вам необходимо присоединиться к таблице award_categories и поставить условия на award_categories.category_id. Очевидно, что если у вас есть актуальная категория под рукой, вы можете просто сделать

category.awards
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...