Rails 3 - разработка вложенной формы с ошибкой массового присваивания - PullRequest
1 голос
/ 10 января 2011

Я знаю, что здесь уже было несколько раз, но я не могу решить эту ошибку -

ПРЕДУПРЕЖДЕНИЕ. Невозможно массово назначить защищенные атрибуты: new_order_attributes

Это вложенный хеш, который пытается быть сохранен - ​​

Parameters: {"utf8"=>"✓","authenticity_token"=>"UNKZf7zvlyReHSCbMRRl+9y+F5/2YF8Rf64Wm9O9xyo=", "user"=>{ "new_orders_attributes"=>[{"plan_id"=>"2", "price_id"=>"2222"}], "first_name"=>"Alex", "last_name"=>"Handley", "email"=>"alex@s.co.uk", "job_title"=>"Programmer",  "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}}

Пользовательские данные сохраняются, но заказ не сохраняется.

Модель

Пользователь

devise :database_authenticatable,
     :recoverable, :rememberable, :trackable, :validatable

attr_accessible :email, :password, :password_confirmation, :remember_me, :name, :location, :country, :job_title, :company, :parent_id,:first_name,:last_name,:subscription_type, 
:orders, :plan_id, :user_id, :price_id

has_many :orders
has_many :plans, :through => :orders
accepts_nested_attributes_for :orders, :plans

Заказы

class Order < ActiveRecord::Base
 belongs_to :plan
 belongs_to :user
end

Планы

 has_many :orders
 has_many :users, :through => :orders

Rails -v - 3.0.3

Вложенная форма

  <% prefix = "user[new_orders_attributes][]" %>
  <%= fields_for prefix, @user.orders do |order_form| %>
   <%= order_form.hidden_field :plan_id, :value => 2 %>
   <%= order_form.hidden_field :price_id, :value => 2222 %>
  <% end %>

Спасибо, Алекс

1 Ответ

2 голосов
/ 10 января 2011

Попробуйте добавить orders_attributes в список атрибутов в операторе attr_accessible.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...