Не удается массово назначить защищенные атрибуты

Обновление форматирования кода для лучшего просмотра.

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 мс) SELECT users,id ОТ users ГДЕ (users,email = BINARY 'a2@gmail.com') ПРЕДЕЛ 1 SQL (1.0ms) ROLLBACK

-------------------- конец вывода журнала --------------------------- ---

Почтовый индекс присутствует в опубликованных данных, и опубликованные данные, кажется, отформатированы правильно. В веб-форме я получаю сообщение об ошибке "Адреса 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
Другие вопросы по тегам