SORU
27 Temmuz 2009, PAZARTESİ


Raylar Varsayılan Değerleri Ayarlamak için doğru Yolu

"En iyi" raylar. nesneleri için varsayılan değerleri ayarlamak için bir yol bulmaya çalışıyorum Düşünebildiğim en iyi"," denetleyicisi. yöntem yeni varsayılan değeri ayarlamak için. Eğer bunu yapmak için daha iyi bir yolu eğer orada biri varsa, bu kabul edilebilir ise parmağın var ya?

CEVAP
27 Temmuz 2009, PAZARTESİ


"Doğru" Ruby. tehlikeli bir kelime. Genellikle bir şey yapmak için birden fazla yolu vardır. Olacağımı biliyorumher zamano masada o sütun için varsayılan değer, DB geçiş için bir resim ayar istiyor. en kolay yolu:

class SetDefault < ActiveRecord::Migration
  def self.up
    change_column :people, :last_name, :default => "Doe"
  end

  def self.down
    # You can't currently remove default values in Rails
    raise ActiveRecord::IrreversibleMigration, "Can't remove the default"
  end
end

ActiveRecord tablo ve sütun özellikleri autodiscovers çünkü, bu aynı varsayılan herhangi bir modeli herhangi bir standart Raylar app kullanarak ayarlamak neden olur.

Ancak, eğer sadece sen istiyorsun varsayılan değerlerine ayarlanmış belirli durumlarda, bir miras modeli paylaşan bir tablo ile bazı diğerleri daha sonra bir başka zarif bir şekilde bunu doğrudan sizin Raylar kodu model nesnesi oluşturulur:

class GenericPerson < Person
  def initialize(attributes=nil)
    attr_with_defaults = {:last_name => "Doe"}.merge(attributes)
    super(attr_with_defaults)
  end
end

Ne zaman sonra, bir GenericPerson.new(), her zaman sızıntı olacak "Doe" sana başka bir şey ile iptal sürece Person.new() için öznitelik.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jared Busch

    Jared Busch

    25 Mayıs 2011
  • LiteralMSPaint

    LiteralMSPai

    27 EKİM 2010
  • SegaAmerica

    SegaAmerica

    5 Mart 2008