Не удается массово назначить защищенные атрибуты
Обновление форматирования кода для лучшего просмотра.
Folks,
Я уже давно смотрю на это, но не понимаю, что здесь может быть. Я использую Devise.
class User < ActiveRecord::Base
has_many :addresses
accepts_nested_attributes_for :addresses
# Other stuff here
end
class Address < ActiveRecord::Base
belongs_to :user
validates_presence_of :zip #:street_address1,
конец
-------------------- начало вывода журнала --------------------------- ---
Запуск POST "/users" для 127.0.0.1 в 2011-05-28 11:43:27 -0700 Обработка с помощью RegistrationsController#create в виде параметров HTML: {"utf8"=>"√", "authenticity_token"=>"CEmdqlsmdYa6Jq0iIf5KAxxISsUCREIrFNXWkP80nh ", "user"=>{"email"=>"a2@gmail.com", "password"=>"[FILT ERED]", "address_attributes"=>{"0"=>{"street_address1"=>"234 Pitkin Ct.", "Zip"=>"12456"}}}, "commit"=>"Зарегистрироваться"} ВНИМАНИЕ: Невозможно массово назначить защищенные атрибуты: address_attributes SQL (0.0ms) BEGIN SQL (164.0 мс) ПОКАЗАТЬ СТОЛЫ
Пользовательская нагрузка (0,0 мс) SELECTusers
,id
ОТusers
ГДЕ (users
,-------------------- конец вывода журнала --------------------------- ---
Почтовый индекс присутствует в опубликованных данных, и опубликованные данные, кажется, отформатированы правильно. В веб-форме я получаю сообщение об ошибке "Адреса zip не могут быть пустыми". Я покопался в том, что вызывает предупреждение "Не удается массово назначить защищенные атрибуты", но не нашел ничего, что могло бы мне помочь.
Спасибо за ваши мысли и указатели.
-S
4 ответа
Посмотрите здесь и узнайте:)
http://railscasts.com/episodes/26-hackers-love-mass-assignment
Редактировать:
имеющий accepts_nested_attributes_for
в модели пользователя позволяет отправлять данные в модель адреса.
Затем, в модели адреса, вы должны установить attr_accessible
Внутри SpecificModel
(appfolder / app / model / specific_model.rb)
Попробуйте использовать
attr_accessible :addresses_attributes, :another_attribute_to_make_mass_assignable, :another_attribute, etc.
В настоящее время (апрель 2013 года) вы должны начать использовать https://github.com/rails/strong_parameters
Просто включите поле данных в модель, как указано ниже
attr_accessible :addresses_attributes