SORU
15 EKİM 2010, Cuma


&; "UYARI:'t Seri ATA özellikleri"korumalı

Dinlendirici teknikleri bir model oluşturmak için kullanılan (aslında Hazırlamak benim için hangi gem, kullanıyorum ve bu model için yeni alanlar adı ve Soyadı Adı ekledim. Göç yolunda gitti. :Adı, :Soyadı attr_accessor modeli, sadece işime gelmezdi ekledim. Ama Seri ATA Doktor ile yeni örneklerini vermek istediğimde.({:adı=>oluşturun ""} MyName) vb., Hatalar-ata kitle nitelikleri korumalı yapamam diyerek alıyorum.

Attr_accessor kullanarak bütün mesele bir model alanların protectedness etrafında almak olduğunu sanıyordum. Bana bu mesajın mantıklı yardımcı olabilir misiniz?

Edit: ha, bu arada kayıtlar da yarattı. Bu bir uyarı sadece yana olması gerektiğini düşündüm, ama veritabanı değildir.

Edit2: işte benim model

class Doctor < User
  has_many :patients
  has_many :prescriptions, :through=> :patients

  validates_presence_of :invitations, :on => :create, :message => "can't be blank"

  attr_accessor :invitations
end

ve Adı ve soyadı yok, şema, doktorların atası olan kullanıcıların tablo oluşturulur çünkü. Tek tablo devralma kullandım.

create_table :doctors do |t|
  t.integer :invitations

  t.timestamps
end

ve bu kullanıcılar tabloyu değiştirmek için geçiş

add_column :users, :first_name, :string
add_column :users, :last_name, :string
add_column :users, :type, :string

EDİT: burada tohum dosyası. Truncate_db_table yöntemi de dahil olmak üzere değilim, ama işe yarıyor.

%w{doctors patients}.each do |m|
  truncate_db_table(m)  
end  

Doctor.create(:invitations=>5, :email=>"email@gmail.com", :first_name=>"Name", :last_name=>"LastName")
Patient.create(:doctor_id=>1, :gender=>"male", :date_of_birth=>"1991-02-24")

CEVAP
15 EKİM 2010, Cuma


attr_accessible attr_accessor karıştırmayın. Erişimci Ruby yerleşik ve alıcı bir yöntem - model_instance.foo # returns something - ve ayarlayıcı bir yöntem tanımlar - model_instance.foo = 'bar'.

Erişilebilir Raylar tarafından tanımlanan ve öznitelik toplu atanabilir attr_protected tersini yapar () yapar.

Eğer first_name model veritabanı tablosunda bir alan ise, o zaman Raylar zaten bu öznitelik için alıcı ve ayarlayıcıları tanımladı. Tüm yapmanız gereken attr_accessible :first_name ekleyin.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS Campus Life

    ASUS Campus

    18 Mart 2013
  • case LianLi

    case LianLi

    28 Mayıs 2010
  • Vagrant Records

    Vagrant Reco

    8 Mayıs 2006

İLGİLİ SORU / CEVAPLAR