Próbuję zbudować wyjątkowo prostą aplikację szyn adresowych. Jednak otrzymuję ten błąd "Nie można masowo przypisać chronionych atrybutów: city_id". Jak mogę to naprawić? Prosimy o dodanie komentarza/sugestii do odpowiedzi na poniższy kod rails. Dzięki.Błąd szyn: Nie można przypisać masowo chronionych atrybutów.
Jak stworzyłem projekt (od podstaw):
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
zmienił tę linię <%= f.text_field :city %>
z app/views/users/_form.html.erb
do <%= f.collection_select :city_id, City.all, :id, :name %>
zmieniony user.rb
automatycznie wygenerowana linia belongs_to :city
do has_one :city
.
belongs_to :city
dodany do city.rb
P.S: Używam Rails 3.2.3 i Ruby 1.9.3.
Otoczenie 'whitelist_attributes' true jest nowym standardem - że będzie wymagać, aby jawnie użyć attr_accessible. Jeśli chcesz powrócić do starego zachowania, powinieneś ustawić "whitelist_attributes" na false. –
jak dodać attr_accessible, jeśli dodam model za pomocą 'ActiveRecord :: Schema.define' w schema.rb – pahnin
Nie rób tego, szczera zamieć. Sprawdź https://github.com/rails/rails/issues/5228, aby uzyskać więcej informacji. –