Rails 3如何使用habtm关联进行查询

时间:2011-12-24 02:21:53

标签: ruby-on-rails ruby-on-rails-3 activerecord

我需要将一组奖励转储到实例变量中:

@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 个答案:

答案 0 :(得分:1)

使用habm奖励不需要category_id(毕竟,如果使用了奖励,奖励怎么能有多个类别?)

您需要加入award_categories表并在award_categories.category_id上添加条件。显然,如果你有一个方便的实际类别,你可以做

category.awards