0

フォームに値を渡してrfid、新しいdeviceオブジェクトを作成しています。rfidその値を使用して既存のリストを調べ、ユーザーが1つを選択できるようにするにはどうすればよいoptions_from_collection_for_selectですか?

値を渡すコードは次のとおりです。

<%= link_to "Create New Device (non-functional)", new_device_path({:rfids[0] => @rfid_id, cabinet_id: @cabinet.id}), :class => "btn btn-primary" %>

そして、これが私がフォームのコードのために始めたものです:

<th>RFID</th>
            <td><%= f.text_field :rfids, options_from_collection_for_select(Rfid.all, "id", ) %></td>

ありがとう。

4

1 に答える 1

0

にパラメータとして値を渡しているように見え、new_device_pathその値を使用して、そのアクションによってレンダリングされるフォームを作成します。

これを行うには、アクションメソッドにコードを追加する必要があります(DevicesController#newRailsのデフォルトを使用している場合。それ以外の場合は、アクションがnew_device_path指すものは何でも)。おそらく次の一般的な形式を使用します。

def new
  @passed_value = params[:param_name]
end

これは、渡された値をインスタンス変数に格納するだけですが、これは、アクションによってレンダリングされた形式で値を参照できることを意味します。

options_from_collection_for_select(Rfid.all, :id, :id, @passed_value)
于 2013-03-14T15:27:58.300 に答える