【发布时间】:2013-04-11 03:43:33
【问题描述】:
transaction.rb模特:
class Transaction < ActiveRecord::Base
attr_accessible :customer, :tickets_attributes
has_many :tickets
accepts_nested_attributes_for :tickets
end
ticket.rb模特:
class Ticket < ActiveRecord::Base
attr_accessible :booking_id, :quantity, :transaction_id
belongs_to :transaction
belongs_to :booking
end
在视图页面中,我有一个嵌套的rails 表单,用于ticket 的多个条目:
<%= form_for(@transaction) do |f| %>
<%= f.text_field :customer %>
<% @sezzion.bookings.each do |booking| %>
<%= booking.bookingdate %>:
<%= f.fields_for :ticket do |t| %>
<%= t.text_field :quantity, :value => 0, :class => "quantity" %>
<%= t.hidden_field :booking_id, :value => booking.id %>
<% end %>
<% end %>
<%= f.submit "create transaction" %>
<% end %>
当我提交表单时,出现以下错误:
ActiveModel::MassAssignmentSecurity::Error in TransactionsController#create
Can't mass-assign protected attributes: ticket
我在transaction 模型中有attr_accessible :tickets_attributes 和accepts_nested_attributes_for :tickets,但仍然有错误。此外,当我在<%= f.fields_for :ticket do |t| %> 线上向票证添加复数时,quantity 字段不会显示。
【问题讨论】:
标签: ruby-on-rails-3 nested-forms mass-assignment