1

私のフォームでは、特定のコレクションを繰り返し処理し、それぞれについて同じ情報を収集したいと考えています。簡単にするために、次のようにします。

<%= form_tag :update_dog do %>
    <% @dogs.each do |dog| %>
        <%= text_field_tag :name, :class=>dog.id %>
    <% end %>
    <%= submit_tag "Add", :class => 'btn btn-success'%>
<%= end %>

コントローラーで操作するために各犬の名前を収集したい場所(送信された各犬の名前を反復処理してそのIDにアクセスできるようにしたい)。私のコレクションに含まれる可能性のある犬の数は変動します。これを行う最善の方法は何ですか?上記のコードは私がこれまでに持っているものですが、正しいかどうか、正しい場合はコントローラーで使用する方法がわかりません。

本当にありがとう!

4

1 に答える 1

1

フィルターから始めます。犬を作成する before_filter を作成します

class KennelController < ApplicationController
  before_filter  :get_dogs , :only=>[:new,:edit]
  def get_dogs
     @dogs = Dog.all.map{|d| [d.name, d.id]}
  end
  ....
end

次に、新しいビューまたは編集ビューで、これを行うことができます。

<%= select_tag :dog, options_for_select(@dogs) %>
于 2012-12-31T19:19:06.323 に答える