从rails上的ruby中的远程服务器获取DB值

时间:2013-03-08 06:35:52

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我需要在远程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获取错误

时,我只需显示<%=Detail.find(:SlNo)%>
undefined method `to_i' for :SlNo:Symbol

3 个答案:

答案 0 :(得分:0)

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

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

按照惯例,列名称应为小写,分隔为_

答案 1 :(得分:0)

我建议你应该使用each_with_index,这样可以避免错误发生。

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

<% end %>

答案 2 :(得分:0)

请勿在show方法中更改查询。保持原样。

但是,上面的查询返回哈希中详细信息表的总记录,而不仅仅是一个。

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

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

<强> show.html.erb

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

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

<% end %>