Ben Raylar
İki model arasındaki standart HABTM ilişki var ... Bu gerçekten basit ama ben bu yüzden nasıl yapılacağını bilmiyorum SQL ile çok kötüyüm düşünüyorum , LandUse ve Fotoğraf. Bu yüzden bir land_uses_photos masaya katılmak zorunda ve her model gibi, standart makro vardır:Photo
has_and_belongs_to_many :land_uses
arazi kullanım tablosu vardır: Kimlik ve Ad (dize).
Arazi Kullanımı Adı = 'foo', 'bar' veya 'baz' öğelerini bulmak istiyorum. Bunu nasıl yaparım?
Ben this question bakıp çalıştı:
Photo.includes(:land_uses).where('land_use.id'=>[6,7])
... ama bu bana verdi: sahte olduğunu
ActiveRecord::StatementInvalid: No attribute named `id` exists for table `land_use`
, burada hem arazi kullanımı için schema.rb ve katılmak tablo var:
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
Peki, bu tür bir bulmayı nasıl yapabilirim? Ve iki yerine sadece bir soru yapmak için, sadece bir "ya da" koşulu yerine "ve" koşulunu nasıl bulabilirim?
Teşekkürler!
. Teşekkürler! – Andrew
'joins' ile' includes' arasındaki farkın ne olduğunu biliyor musunuz? – Andrew
İlişkilendirme verilerini yüklemek istediğinizde 'includes' kullanın. Bu, N + 1 sorununu önlemek istediğinizde kullanışlıdır. Çok daha basit ve daha hızlı bir sql oluşturduğundan, 'her yerde 'birleştirme' özelliğini kullanın. –