Невозможно назначить защищенные атрибуты
Обновление форматирования кода для лучшего просмотра.
Люди,
Я смотрел на это какое-то время, но я не понимаю, что здесь может испортить. Я использую 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 # create as Параметры HTML: { "utf8" = > "√", "Authenticity_token" = > "CEmdqlsmdYa6Jq0iIf5KAxxISsUCREIrFNXWkP80nhk =", "Пользователь" = > { "электронная почта" = > "[email protected]", "password" = > "[FILT ERED]", "Addresses_attributes" = > { "0" = > { "street_address1" = > "234 Pitkin Ct.", "Zip" = > "12456" }}}, "commit" = > "Зарегистрироваться" } ПРЕДУПРЕЖДЕНИЕ: не удается атрибуты, присвоенные массовым назначением: address_attributes SQL (0.0ms) BEGIN SQL (164.0ms) SHOW TABLES
Пользовательская нагрузка (0.0ms) SELECT users
. id
FROM users
WHERE (users
. email
= BINARY '[email protected]') LIMIT 1 SQL (1.0ms) ROLLBACK
-------------------- конец вывода журнала ------------------------ ------
Почтовый индекс присутствует в опубликованных данных, и опубликованные данные, похоже, правильно отформатированы. В форме веб-страницы я получаю сообщение об ошибке "Адреса zip не могут быть пустыми". Я выкопал, что заставляет предупреждать "Не могу назначить защищенные атрибуты", но не нашел ничего, что могло бы помочь мне.
Спасибо за ваши мысли и указатели.
-S
Ответы
Ответ 1
Посмотрите здесь и узнайте:)
http://railscasts.com/episodes/26-hackers-love-mass-assignment
Edit:
Имея accepts_nested_attributes_for
в модели User, вы можете отправить данные в модель Address.
Затем в модели Address вы должны установить запрошенный attr_accessible
Ответ 2
Внутри SpecificModel
(appfolder/app/model/specific_model.rb)
Попробуйте использовать
attr_accessible :addresses_attributes, :another_attribute_to_make_mass_assignable, :another_attribute, etc.
Ответ 3
В настоящее время (апрель 2013 года) вы должны начать использовать https://github.com/rails/strong_parameters
Ответ 4
Просто укажите поле данных в модели, как указано ниже
attr_accessible :addresses_attributes