SORU
15 HAZİRAN 2010, Salı


Birden fazla özelliği ile find_or_create raylar?

Aktif kayıttaki kullanışlı dinamik bir nitelik find_or_create_by denir

Model.find_or_create_by_<attribute>(:<attribute> => "")

Ama eğer birden fazla özelliği ile find_or_create için ne yapabilirim?

M:M ilişkisini Grubu ve Üye GroupMember adlı işlemek için bir model var. Member_id = 4, ama bir kez daha örneğini nereden istemiyorum member_id = 4 ve group_id = 7 birçok örnekleri var. Mümkünse böyle bir şey olup olmadığını anlamaya çalışıyorum:

GroupMember.find_or_create(:member_id => 4, :group_id => 7)

Bu işlemek için daha iyi yollar olabilir farkındayım, ama find_or_create fikri rahatlığı seviyorum.

CEVAP
15 HAZİRAN 2010, Salı


Birden fazla özelliği and: ile bağlanabilir

GroupMember.find_or_create_by_member_id_and_group_id(4, 7)

(Eğer kayıt hemen kaydetmek istiyor musun diye find_or_initialize_by kullanın)

Edit: yukarıdaki yöntem Raylar 4 önerilmiyor. Bunu yapmak için yeni bir yol olacak:

GroupMember.where(:member_id => 4, :group_id => 7).first_or_create

ve

GroupMember.where(:member_id => 4, :group_id => 7).first_or_initialize

Edit 2: raylar dışarı çarpanlarına sadece özniteliği özel olanlar vardı bu.

https://github.com/rails/rails/blob/4-2-stable/guides/source/active_record_querying.md

Örnek

GroupMember.find_or_create_by_member_id_and_group_id(4, 7)

oldu

GroupMember.find_or_create_by(member_id: 4, group_id: 7)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • schmittastic

    schmittastic

    9 EYLÜL 2009
  • talkandroid

    talkandroid

    27 Mayıs 2010
  • tatermoog

    tatermoog

    2 AĞUSTOS 2006