SORU
26 AĞUSTOS 2010, PERŞEMBE


find_or_create ile accepts_nested_attributes_for?

Kullanıyorum Raylar büyük bir başarı ile' accepts_nested_attributes_for yöntem, ama bu nasıl olacak bendeğileğer bir kayıt varsa yeni kayıt oluşturmak?

Örnek: arada

Üç modelleri, Takım, Üyelik ve Oyuncu ve her takım üyelikleri ile oyuncular has_many var ki, oyuncu birçok takım ait olabilir. Takımı modeli, daha sonra oyuncular birbirinin içine geçmiş öznitelikleri kabul olabilir, ama her oyuncu birlikte takım oyuncu(lar) ile gönderilen yeni oyuncu kayıt olarak oluşturulur formu anlamına gelir.

Nasıl olursa eğer zaten aynı ada sahip bir oyuncu değil eğer yok sadece yeni oyuncu kaydını bu şekilde oluşturmak istiyorum şeyler yapıyor hakkında gitmek gerekir? Varsaaynı ada sahip bir oyuncu, yeni oyuncu kayıtları oluşturulmalıdır, ancak bunun yerine doğru oyuncuyu buldu ve yeni bir takım kaydı ile ilişkilendirilmiş olması gerekir.

CEVAP
26 AĞUSTOS 2010, PERŞEMBE


Size otomatik kaydetme dernekler için bir kanca tanımlarken, normal kod yolu atlanır ve Yöntem yerine denir. Böylece, bunu yapabilirsiniz:

class Post < ActiveRecord::Base
  belongs_to :author, :autosave => true
  accepts_nested_attributes_for :author

  # If you need to validate the associated record, you can add a method like this:
  #     validate_associated_record_for_author
  def autosave_associated_records_for_author
    # Find or create the author by name
    if new_author = Author.find_by_name(author.name)
      self.author = new_author
    else
      self.author.save!
    end
  end
end

Bu kod denenmemiş, ama en çok ihtiyacın olan şey olmalı.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Fr. Eckle Studios

    Fr. Eckle St

    29 Kasım 2006
  • itfigueres

    itfigueres

    12 EKİM 2013
  • National Geographic

    National Geo

    7 Mayıs 2006

İLGİLİ SORU / CEVAPLAR