Я думаю, что это действительно элементарная процедура, но я ужасно разбираюсь в 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
Итак, как мне выполнить такой поиск? И чтобы задать только один вопрос вместо двух, как я могу найти с условием «и» вместо условия «или»?
Спасибо!