1

我需要显示来自远程 db.for 的表值,因为我在控制器中执行了以下操作

      def show
        @dev = Detail.find(:all)
        #raise @devices.inspect
      end

show.html.erb

<h1>TrDeviceDetails#show</h1>
<p>Find me in app/views/tr_device_details/show.html.erb</p>
<%= @dev %>

该页面显示了带有值的表格。

[#<Detail UniqueDeviceID: 14448, SlNo: 609">, #<Detail UniqueDeviceID: 14448, SlNo: 610">].

我只需要显示 SlNo.when 我写<%=Detail.find(:SlNo)%>得到错误

undefined method `to_i' for :SlNo:Symbol
4

3 回答 3

0

您已经找到show了控制器方法中的所有设计。您需要遍历所有记录

<% @dev.each do |d| %>
  Dev id: <%= d.SlNo %>
<% end %>

同样按照惯例,列名应该小写并分隔_

于 2013-03-08T07:14:10.620 回答
0

我建议你应该使用 each_with_index,它会避免错误发生。

<% @dev.each_with_index do |page, index| %>

<% end %>
于 2013-03-08T07:27:37.857 回答
0

不要更改 show 方法中的查询。保持原样。

但是,上面的查询以散列形式返回详细表的总记录,而不仅仅是一条。

为了只获取SlNo,您需要遍历每条记录,然后获取每条记录SlNo

因此,在您的 show html 中执行以下操作:

显示.html.erb

<% @dev.each do |dev| %>

<%= dev.SlNo %> #displays only the SlNo.

<% end %>
于 2013-03-08T07:30:13.357 回答