Не удается массово назначить защищенные атрибуты - PullRequest
28 голосов
/ 28 мая 2011

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

Люди,

Я уже некоторое время смотрю на это, но я не понимаю, что здесь может быть не так. Я использую 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 Обработка by RegistrationsController # создать как Параметры HTML: {"utf8" => "√", "Authenticity_token" => "CEmdqlsmdYa6Jq0iIf5KAxxISsUCREIrFNXWkP80nhk =", "Пользователь" => { "электронная почта" => "a2@gmail.com", "password" => "[FILT ERED]", "Addresses_attributes" => { "0" => { "street_address1" => "234 Питкин Ct. "," Zip "=>" 12456 "}}}, "commit" => "Зарегистрироваться"} ПРЕДУПРЕЖДЕНИЕ: не могу массово назначить защищенные атрибуты: address_attributes SQL (0.0ms) НАЧАЛО SQL (164.0ms) ПОКАЗАТЬ ТАБЛИЦЫ
Пользовательская нагрузка (0,0 мс) SELECT users. id ОТ users ГДЕ (users. email = BINARY 'a2@gmail.com') LIMIT 1 SQL (1,0 мс) ROLLBACK

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

Почтовый индекс присутствует в опубликованных данных, и опубликованные данные, похоже, правильно отформатированы. В веб-форме я получаю сообщение об ошибке «Адреса zip не могут быть пустыми». Я покопался в том, что вызывает предупреждение «Не удается массово назначить защищенные атрибуты», но не нашел ничего, что могло бы мне помочь.

Спасибо за ваши мысли и указатели.

-S

Ответы [ 4 ]

38 голосов
/ 28 мая 2011

Посмотрите здесь и узнайте:)

http://railscasts.com/episodes/26-hackers-love-mass-assignment


Редактировать:

Наличие accepts_nested_attributes_for в модели пользователя позволяет отправлять данныек модели адреса.

Затем в модели адреса необходимо установить запрашиваемую attr_accessible

11 голосов
/ 28 мая 2011

Внутри SpecificModel ( appfolder / app / model / specific_model.rb )

Попробуйте использовать

attr_accessible :addresses_attributes, :another_attribute_to_make_mass_assignable, :another_attribute, etc.

5 голосов
/ 11 мая 2013

В настоящее время (апрель 2013 г.) вы должны начать использовать https://github.com/rails/strong_parameters

3 голосов
/ 01 апреля 2016

Просто включите поле данных в модель, как указано ниже

attr_accessible :addresses_attributes
...