ho usato tecniche RESTful per generare un modello (in realtà, io sto usando Elaborare gemma, che lo fa per me), e ho aggiunto nuovi campi chiamati first_name e cognome al modello. La migrazione è andata bene. Ho aggiunto attr_accessor: first_name,: cognome al modello e mi aspettavo che sarebbe solo di lavoro. Ma quando cerco di massa assegnare nuovi casi con Doctor.create ({: first_name => "myname"}) ecc, sto ottenendo gli errori dicendo che non posso mass-assegnare gli attributi protetti."ATTENZIONE: Non può mass-assegnare protetta attributi"
ho pensato che il punto di utilizzare attr_accessor era quello di aggirare la protectedness dei campi di un modello. Puoi aiutarmi a dare un senso a questo messaggio?
Edit: Oh, e dal modo in cui i record non vengono creati sia. Ho pensato che dovrebbero essere poiché questo è solo un avvertimento, ma non sono nel database.
Edit2: qui è il mio modello
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
e lo schema, che non ha il first_name e last_name perché sono creati nella tabella degli utenti, che è l'antenato dei medici. Ho usato l'ereditarietà di una tabella singola.
create_table :doctors do |t|
t.integer :invitations
t.timestamps
end
e questo è la migrazione per modificare la tabella degli utenti
add_column :users, :first_name, :string
add_column :users, :last_name, :string
add_column :users, :type, :string
EDIT: Ecco il file seme. Non sto includendo il metodo truncate_db_table, ma funziona.
%w{doctors patients}.each do |m|
truncate_db_table(m)
end
Doctor.create(:invitations=>5, :email=>"[email protected]", :first_name=>"Name", :last_name=>"LastName")
Patient.create(:doctor_id=>1, :gender=>"male", :date_of_birth=>"1991-02-24")
Non sono ancora molto esperto su Rails 4, ma penso che questa domanda sia una domanda di Rails 3. La configurazione predefinita hardcoded in 'config/application.rb' in Rails 4 è vuota! –
http://apidock.com/rails/ActiveRecord/Base/attr_accessible/class – shilovk