0

我想创建一组字段来在我的activties/_form.html.erb

一旦我让表单工作,我计划在单击添加另一个位置按钮或选择位置选择框中的额外选项时显示表单。

到目前为止的故事:

_form.html.erb

<%= f.fields_for :location do |builder| %>
<%= render 'location_fields', :f => builder %>
<%= builder.hidden_field :provider_id, :value => @provider.id %>
<% end %>

活动.rb

attr_accessible :name, :price, :location, :location_attributes
accepts_nested_attributes_for :location

问题是,这一切都运作得太好了。当您编辑活动记录时,位置字段会预先填充相关的位置记录。

我应该如何创建一个空白表单,以便始终创建一个新位置并与该活动相关联?

4

1 回答 1

0

您需要创建一个没有现有数据的“新”位置。然后,此表单将使用它。

例如:在您的控制器中

@new_location = Location.new

然后,您可以使用此位置对象调用部分。

您在现场看到的位置可能是已经与活动相关的位置。这取决于你的控制器中有什么。

您还可以尝试嵌套属性:

@activity.location.build

然后在您看来:

<%= f.fields_for :location do |builder| %>
  <%= builder.label :name %><br/>
  <%= builder.text_field :name %>
<% end %>
于 2012-12-11T04:20:07.073 回答