nil has_one derneklerini bulmak Bu basit bir soru olabilir, ancak burada zarif bir çözüm bulmak için benim saçımı çekiyor gibi görünüyor. ideal başvurmadan,Sorgu nerede
class Item < ActiveRecord::Base
has_one :purchase
end
class Purchase < ActiveRecord::Base
belongs_to :item
end
Bütün Öğe nesneleri bulmak için zarif bir yol arıyorum, bunlarla ilişkili hiçbir alım nesne var: Aralarında bir has_one ve belongs_to dernek ile, iki ActiveRecord modeli sınıfları Boole is_purchased
veya Öğeye benzer bir özniteliğe sahip olmak.
Şu anda var:
o iki sorgu performans gösteriyorsa (ve alımları büyük bir kayıt kümesi olabilir) gibi çalışır, ama bana verimsiz görünmektedirpurchases = Purchase.all
Item.where('id not in (?)', purchases.map(&:item_id))
.
Koşu Raylar 3.1.0
Bu bağlantı mükemmel! Birleşime ihtiyacım olan şey tam olarak buydu, sadece yukarıdaki yeri ("purchases.item_id IS null") ile değiştirmek zorunda kaldım ve gitmesi güzel. Teşekkürler! –
Eğer 'has_many' veya' has_one' kullanılıyorsa, 'Item.join (: alımları) ' –