嵌套表单Rails批量分配问题

时间:2013-01-04 03:27:12

标签: ruby-on-rails ruby ruby-on-rails-3 nested-forms

我似乎无法使用嵌套表单,我要么看不到它,要么不理解它。这里的错误

Can't mass-assign protected attributes: location

现在我在这里写了我的

型号/活动:

#Data
  attr_accessible :customer_id, :description, :location_attributes
#Relationship
  has_many :locations
  accepts_nested_attributes_for :locations, :allow_destroy => true

型号/位置:

#Data
  attr_accessible :address, :customer_id, :event_id, :latitude, :longitude
#Relationship
  belongs_to :customer
  belongs_to :event

控制器:

  def create
    @event = current_customer.events.build(params[:event])
    ...

查看:

  <%= f.fields_for :location do |e| %>
    <%= e.hidden_field :longitude %>
    <%= e.hidden_field :latitude %>
  <% end %>

PARAMS

 "location"=>{"longitude"=>"-80.9449995",
 "latitude"=>"46.435371599999996"},

我在rails 3.2.9上并托管在vps服务器上。现在我不明白为什么它不起作用。

1 个答案:

答案 0 :(得分:1)

你的表格应该是,并注意复数:

<% f.fields_for :locations do |location_form| %>

这是因为您要渲染与表单对象关联的位置对象的字段。这将自动为这些字段的参数命名为location_attributes,然后将它们传递给您的控制器,然后您的模型将接受它们。