5

このRailscastのスタイルでネストされたモデルフォームがあります http://railscasts.com/episodes/196-nested-model-form-revised?view=asciicast

各タグに一意の ID を付与する必要があります。現在、生成された各フィールドには、一意の ID をすべての関連付けレコードに割り当てるヘルパー メソッドによって指定された一意の ID と名前があります。それで、それは世話をされます。ただし、このフォームには ID が割り当てられていない「fieldset」タグがあります。jQuery 操作のために、フィールドセットごとに一意の ID が必要です。

具体的には、「アクティビティ」レコード用に生成された各フィールドセットに一意の CSS タグ ID を与えるにはどうすればよいですか? 以下に投稿されたのは、私のフォームの作成方法です。ありがとうございました

_form.html.erb

<%= form_for(@trip) do |f| %>

<%= f.fields_for :days do |builder| %>
  <%= render 'day_fields', f: builder %>
<% end %>
<%= link_to_add_fields "Add Day", f, :days %>

_day_fields.html.erb 部分

<fieldset>
  <%= f.label :summary, "Day Summary" %><br />
  <%= f.text_area :summary, :rows => 1 %><br />
    <%= link_to "remove", '#', class: "remove_fields" %>

  <%= f.fields_for :activities do |builder| %>
    <%= render 'activity_fields', f: builder %>
  <% end %>
  <%= link_to_add_fields "Add Activity", f, :activities %>
</fieldset>

_activity_fields.html.erb

<fieldset>
  <%= f.label :title, "Activity" %><br />
  <%= f.text_field :title, :rows => 1 %><br />
  <%= f.hidden_field :_destroy %>
  <%= link_to "remove", '#', class: "remove_fields" %>
</fieldset>
4

3 に答える 3

1

f.object両方のパーシャルに渡されたものを使用しないのはなぜですか?

<% fieldset_id = "#{f.object.class.underscore}_#{f.object.id}" %>
<fieldset id='<%= fieldset_id %>'>
...
于 2012-11-02T05:18:52.000 に答える
0

同様の問題があり、秒単位の時間を使用して解決し、必要なすべての場所に渡します。

例えば:

コントローラー

def something
  # First idea
  @dynid = Time.now.to_i
  ...
  # Second idea: store it in the session
  session[:dynid] = Time.now.to_i
  ...
end

あなたの見解では

<fieldset id="#{@dynid}">
<!-- or in case @dynid is out of reach, then use the session[:dynid] -->
<fieldset id="#{session[:dynid]}">

session[:dynid}、ajax でレンダリングされたコードでも機能します。

これがお役に立てば幸いです。

于 2012-11-02T06:58:31.520 に答える