1

コメントのネストされた属性があります。親クラスは post です。

<% form_for @post do |f| %>

...........

<% f.fields_for :comments do |builder| %>

   <%= builder.text_field :name %>
   <%= builder.text_field :address %>
   <%= builder.hidden_field :label, :value => user_1 %>

   <%= builder.text_field :name %>
   <%= builder.text_field :address %>
   <%= builder.hidden_field :label, :value => user_2 %>
   <% end %>

<% end %>

投稿を保存するときに、コメントも保存したいのですが、hidden_​​field にさまざまな値が必要です。フォーム タグを使用する場合、コントローラーで何もせずにコメントを保存する方法がわかりません。

投稿モデルで :accepts_nested_attributes_for :comment も使用しました。誰かが考え直すことができれば、それは素晴らしいことです.

name、address、および label はコメントのフィールドです。投稿を保存するとき、2 行のコメントを保存する必要があります。最初の text_field、text_field、hidden_​​field からの 1 行と、2 番目の入力フィールドからの別の行。

4

2 に答える 2

1

友人の助けを借りてこれを修正しました。コントローラーにこのコードがあります

if @post.comments.nil?
  @post.comments.build(:username => "user1") 
  @post.comments.build(:username => "user2") 
end

そして、これを私の形にしてください

<%= form_for @post do |f| %>
  <%= f.fields_for :comments do |builder| %>
    <%= builder.label :username, "#{builder.object.username}" %>
    <%= builder.hidden_field :username %>
    <% if builder.object.username == "user1" %>
      <%= builder.text_field :address, :value => "address1" %>
    <% else %>
      <%= builder.text_field :address, :value => "address2" %>
    <% end %>
  <% end %>
<%= f.submit "Create Post" %>
<%end%>

したがって、投稿を作成すると、最初にアドレス: アドレス 1、ユーザー名: ユーザー 1 の値を持つコメントと、アドレス: アドレス 2、ユーザー名: ユーザー 2 という値を持つ 2 つのコメントが投稿を保存するときに保存されます。

于 2011-02-18T06:29:16.043 に答える
1

同じ ID を持つフィールドを持つフォームを作成します。これにより無効な HTML が生成され、すべての (ほとんどの) ブラウザーで正しく処理されません。

FormTagHelpersを使用するには、一意の ID を生成する必要があります。例えば:

<% form_tag('/builder') %>
  <%= text_field_tag ':name1' %>
  <%= text_field_tag ':address1' %>

  <%= text_field_tag 'name2' %>
  <%= text_field_tag 'address2' %>
<% end %>

これにより、正しい HTML が生成されます。次に、異なる名前のフィールドを処理するようにコントローラーを変更する必要があります。params[:name1]を使用しparams[:name2]て、user1 と user2 の名前を取得する必要があります。

IDをより便利なものに変更することで(IDがどのように名前atmになるか頭で覚えていません...)、ユーザーのフィールドを「グループ化」しparams[:user1][:name]て、テーブルによりよく一致するようなものを使用できます。

編集: field_forのドキュメントは既にご覧になりましたか? モデルと必要なフォームの良い例がいくつかあります。

于 2011-01-31T12:16:25.453 に答える