0

我想使用 rails 3 将从数据库中获取的值填充到下拉列表中:

@details包含数据库中的所有值。打印@details.inspect时,它在网页中显示为:

[<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字段中输入什么?数据库表包含nodeviceid和。 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

如果我正确理解您的问题,您将需要@detailsDevice控制器中声明实例变量。它应该看起来像这样:

控制器/设备.rb:

def show
  @details = Detail.all
end

然后,在您的索引和显示页面中,您可以像这样访问该实例变量:

视图/设备/show.rb:

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

它应该遍历您的每个细节并呈现每个细节。如果您只想显示细节的“否”,它应该如下所示:

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

或者,如果您在显示页面上,您可以像这样简单地调用该页面的详细信息:

<%= detail.no %>

这是你问的吗?

于 2013-03-12T05:11:16.343 回答