0

Rails 3を使用して、データベースからフェッチした値をドロップダウンリストに入力したい。

@detailsデータベースからのすべての値が含まれています。印刷中@details.inspectは、Webページに次のように表示されます。

[<DeviceDetail DeviceID: 14448, No: 616">, <DeviceDetail DeviceID: 14448, No: 617">, <DeviceDetail DeviceID: 14448, No: 618">]........

ループで詳細を取得しNoます。Noドロップダウンリストに表示するにはどうすればよいですか?

 <% @details.each do |d| %>    
    <%=d.No%>
    <% end %>

Noドロップダウンリストに表示するために以下を追加しましたが、エラーが返されますundefined method name for DeviceDetail:0x390f3f0。私のデータベースにはファイルされた名前が含まれていないので、:nameフィールドに何を入力する必要がありますか?データベーステーブルには、、、、noおよびが含まdeviceidれます。 speedtime

 <% @details.each do |d| %>    
      <%=collection_select(:device_detail, d.No, @details, :id, :name) %>
        <% end %>

これは可能ですか?

4

2 に答える 2

2

これはフォームの一部ですか?を使用してselect_tag、同じ入力オプションを選択します。http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tagを確認してください。

于 2013-03-12T05:06:38.807 に答える
0

私があなたの質問を正しく理解しているなら、あなたは@detailsあなたのDeviceコントローラーでインスタンス変数を宣言する必要があるでしょう。次のようになります。

controller / device.rb:

def show
  @details = Detail.all
end

次に、インデックスページと表示ページで、次のようにそのインスタンス変数にアクセスできます。

views / device / show.rb:

<% @details.each do |detail| %>
  <%= render detail %>
<% end %>

それぞれの詳細をループして、それぞれをレンダリングする必要があります。詳細の「いいえ」のみを表示したい場合は、次のようになります。

<% @details.each do |detail| %>
  <%= detail.no %>
<% end %>  

または、ショーページを表示している場合は、次のようにそのページの詳細を呼び出すことができます。

<%= detail.no %>

これはあなたが求めていたものですか?

于 2013-03-12T05:11:16.343 に答える