我正在尝试同时创建两个对象。我最好的方法是使用fields_for。并且关系是has_many。
模型/位置.rb
attr_accessible :address, :customer_id, :event_id, :latitude, :longitude
belongs_to :customer
belongs_to :event
模型/事件.rb
attr_accessible :locations_attributes
has_many :locations, :dependent => :destroy
accepts_nested_attributes_for :locations
表格如下:
<%= form_for(@event) do |f| %>
...
<%= f.fields_for :locations do |e| %>
<%= e.text_field :longitude %>
<%= e.text_field :latitude %>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
我的字段不会显示,我已按照本节http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-fields_for中的文档 has_many 进行操作, 并注意是否在我的 f.fields_for :locations 将其更改为单数,而不是字段将显示,但我将无法创建它,因为我不允许修改位置属性。
更新:
如果我单数。我将其更改为我的事件模型
attr_accessible :description, :title, :location_attributes
错误是这样的
app/controllers/events_controller.rb:60:in `new'
app/controllers/events_controller.rb:60:in `create'
我的控制器是这样的
line 60: @event = Event.new(params[:event])