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 に答える