我不确定如何正确创建带有嵌套表单的 Rails 表单。我已经学习了很多教程,但变得更加困惑应该是什么,单数复数,控制器......这是我的模型
模型/事件.rb
attr_accessible :description :title, :tag_ids, :locations_attributes
has_many :location
accepts_nested_attributes_for :location, :allow_destroy => true
模型/位置.rb
attr_accessible :address, :customer_id, :event_id, :latitude, :longitude
belongs_to :customer
belongs_to :event
控制器.rb
def new
@event = Event.new
...
def create
@event = Event.new(params[:event])
...
查看 form.html.erb
<%= form_for(@event) do |f| %>
<%= f.fields_for :locations do |e| %>
<%= e.text_field :longitude %>
<%= e.text_field :latitude %>
<% end %>
...
<% end %>
错误
Can't mass-assign protected attributes: locations
参数发送
"locations"=>{"longitude"=>"45.6666",
"latitude"=>"47.44444665"},
要么我的关系是错误的,因为 fields_for 不支持它,要么我的控制器不合适,要么 rails 不是一门好语言,或者我不再理解它。