Rails 3 HABTM查找记录关联的模型属性



我认为这是非常基本的,但我对SQL很糟糕,所以我不知道如何做到这一点…

我在LandUse和Photo两个模型之间有一个标准的HABTM关系。我有一个land_uses_photos连接表,每个模型都有标准宏,如:

Photo
has_and_belongs_to_many :land_uses

土地使用表有:ID, Name(string)。

我想找到土地使用名称= 'foo','bar'或'baz'的照片。我怎么做呢?

我看着这个问题,试着:

Photo.includes(:land_uses).where('land_use.id'=>[6,7])

…但这给了我:

ActiveRecord::StatementInvalid: No attribute named `id` exists for table `land_use`

那是假的,这是模式。对于LandUse和join表:

create_table "land_uses", :force => true do |t|
  t.string   "name"
  t.datetime "created_at"
  t.datetime "updated_at"
  t.integer  "display_order"
end
create_table "land_uses_photos", :id => false, :force => true do |t|
  t.integer "land_use_id"
  t.integer "photo_id"
end

那么,我怎么做这种查找呢?为了把问题变成一个问题而不是两个问题,我怎样才能用"one_answers"而不是"或"来找到答案呢?

谢谢!

Photo.joins(:land_uses).where('land_uses.name' => ['foo', 'bar', 'baz'])

由于表名是:land_uses而不是land_use,所以生成了一个'id'错误

最新更新