Sto provando a creare un'applicazione di rotaie AddressBook estremamente semplice. Tuttavia, sto ricevendo questo errore "Impossibile assegnare in massa attributi protetti: city_id". Come posso risolvere questo? Sentiti libero di aggiungere commenti/suggerimenti alla tua risposta riguardo al codice dei binari qui sotto. Grazie.Rails: impossibile assegnare in massa attributi protetti
Come ho creato il progetto (da zero):
rails new demo
rails generate model City name:string
rails generate scaffold User name:string city:references
rake db:migrate
db/seeds.db:
City.create(name: "City1")
City.create(name: "City2")
City.create(name: "City3")
rake db: seed
cambiato questa linea <%= f.text_field :city %>
app/views/users/_form.html.erb
-<%= f.collection_select :city_id, City.all, :id, :name %>
modificato user.rb
linea generata automaticamente belongs_to :city
a has_one :city
.
aggiunto belongs_to :city
-city.rb
P.S: Sto usando Rails 3.2.3 e 1.9.3 di Ruby.
impostazione 'whitelist_attributes' al vero è il nuovo default - che si richiede all'utente di utilizzare in modo esplicito attr_accessible. Se vuoi ripristinare il vecchio comportamento, devi impostare 'whitelist_attributes' su false. –
come aggiungere attr_accessible se sto aggiungendo un modello usando 'ActiveRecord :: Schema.define' in schema.rb – pahnin
Non farlo, sincera tormenta. Controllare https://github.com/rails/rails/issues/5228 per ulteriori informazioni. –