2013-03-12 74 views
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字段中輸入什麼內容?數據庫表包含no,deviceidspeedtime

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

這可能嗎?

回答

0

如果我正確理解您的問題,您需要在Device控制器中聲明實例變量@details。它應該是這個樣子:

控制器/ device.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 %> 

這是你在問什麼?

+0

不,我只想在下拉列表中顯示數據庫中沒有提交的字段 – Psl 2013-03-12 05:49:20