2014-11-05 27 views
0

我是Rails的新手,非常高興能夠盡我所能學習。除了下拉框外,一切正常。該框填充正確,並具有我想要的所有價值。但是當我點擊「分配」並進入下一頁時,我在下拉列表中選擇的值沒有顯示出來。我知道我需要在鏈接中引用它,並且我已經嘗試在鏈接中添加不同的值,但我仍然無法破解代碼。無法獲得下一個頁面中顯示的下拉框值

<table class="listing" summary="Subject list"> 
<tr class="header"> 
    <th><h3>Procedures</h3></th> 
    <th><h3>Notes</h3></th> 
    <th><h3>Assign To</h3></th> 
</tr> 
<% @procedures.each do |procedure| %> 
<tr> 
    <td><%= procedure.procedure_name %></td> 
    <td><%= procedure.note %></td>  

    <td class="actions"> 

    <%= collection_select(:post, :employee_id, @individuals, :id, :last_name) %>   

    <%= link_to("Assign", {:controller => 'projects', :action => 'new', :procedure_id => procedure.id}, :class => 'action new') %> 

    <%= link_to("Edit", '#', :class => 'action show') %> 
    <%= link_to("Delete", '#', :class => 'action edit') %> 

    <td> 

    </td> 
</tr> 
<% end %> 

感謝您的幫助

回答

0

這將一個新的頁面,因爲你點擊一個鏈接。我猜你想要發生的是它發送的信息,無需重新加載頁面。這與AJAX完成,但Rails的簡化它只是remote: true

<%= link_to "Assign", {:controller => 'projects', :action => 'new', :procedure_id => procedure.id}, :class => 'action new', remote: true %> 

此外,在終端類型耙路線和更換哈希值。我敢打賭這只是new_projects_path(procedure)

<%= link_to "Assign", new_projects_path(procedure_id: procedure.id), :class => 'action new', remote: true %> 

編輯:你想要它的形式。我只是要跳過僱員再培訓局,但是這是很簡單的(但我會在等號你):

form_for procedure.projects.new, remote: true do |f| 

    = f.collection_select... #probably same as before, consult collection_select form helpers docs to be sure 
    = f.hidden_field :procedure_id, value: procedure.id 
    = f.submit 
end 

就像我在評論下方提及是否項目#新的嵌套,你應該能夠跳過隱藏的領域。

+0

感謝您的快速響應。在link_to上,我可以保留它,只需添加一個參數傳遞給新的操作?如果是這樣,我在「procedure_id => procedure.id」之後添加什麼語句,讓它將collection_select傳遞給新頁面?再次對不起,如果這是一個愚蠢的問題 – ja11946 2014-11-05 16:36:57

+0

我很抱歉,我應該更具體,我如何通過employee_id參數?如在collection_select中看到的那樣?謝謝 – ja11946 2014-11-05 19:23:31

+0

我從來沒有用過散列代替路由助手,但是如果它把你帶到'new'頁面,我想你可以使用它。但是我確實編輯了一個校正來將'id'作爲參數傳遞,假設項目#new不是'procedures'下的嵌套資源,在這種情況下,我假設id會自動發送。但我會測試它來確保。 – MCB 2014-11-05 19:24:37

相關問題