1

我需要show.html.erb從遠程服務器DB值在Ruby on Rails的

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

頁面顯示來自遠程db.for,我並在控制器

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

下表中的值用值顯示錶格。

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

我只需要顯示SlNo。當我寫<%=Detail.find(:SlNo)%>得到錯誤

undefined method `to_i' for :SlNo:Symbol 

回答

0

你已經發現的所有圖謀在控制器的show方法。您需要遍歷所有記錄

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

也由約定去的列名應在downcase與_

0

分離,我會建議你應該使用each_with_index,就會避免錯誤occurence。

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

<% end %> 
0

不要更改show方法中的查詢。保持原樣。

但是,上述查詢返回散列中的詳細表的總記錄,而不僅僅是一個。

爲了僅獲得SlNo,您需要遍歷每條記錄,然後分別獲得SlNo

在顯示HTML

等做了以下內容:

show.html.erb

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

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

<% end %>