Rails 3 HABTM находит по атрибуту модели, связанному с записью

Я думаю, что это действительно элементарная процедура, но я ужасно разбираюсь в SQL, поэтому понятия не имею, как это сделать ...

У меня стандартная взаимосвязь HABTM между двумя моделями, LandUse и фото. Итак, у меня есть таблица соединений land_uses_photos, и каждая модель имеет стандартный макрос, например:

Photo
has_and_belongs_to_many :land_uses

В таблице землепользования есть: ID и Name (строка).

Я хочу найти фотографии, где Land Use Name = 'foo ',' bar 'или' baz '. Как мне это сделать?

Я посмотрел на этот вопрос и попробовал:

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

... но это дало мне:

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

Это подделка, здесь ' s файл schema.rb как для LandUse, так и для таблицы соединения:

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

Итак, как мне выполнить такой поиск? И чтобы задать только один вопрос вместо двух, как я могу найти с условием «и» вместо условия «или»?

Спасибо!

6
задан Community 23 May 2017 в 10:30
поделиться