我有一個顯示動物列表的表單,並讓我選擇多個動物並對它們進行操作。在這個相同的表單中,我需要爲列表中的每個動物提供一個鏈接,並將其發佈到另一個控制器,並使用發佈的該動物的ID進行操作。因此,我需要一個鏈接在我的另一個表單中(不會嵌套表單),並將其發佈到另一個URL。這是我需要張貼到路線:rails link_to method = post with param
animal_medicalrecords POST /medicalrecords/animal(.:format) medicalrecords#animal
這是在動物控制器的形式,我已經把現在不工作了的link_to:
<%= form_tag(action: "takeaction") do %>
...some irrelevant form stuff ...
<% @animals.each do |animal| %>
<%= link_to "Add", animal_medicalrecords_path(:animal_id => animal.id), :method=> :post %>
當我點擊鏈接它帶我到這裏../medicalrecords/animal?id=1並有這些參數:{「id」=>「animal」} 所以,我得到一個錯誤,說:找不到Medical idord與id = animal
我做錯了,它張貼「動物」作爲身份證與實際的身份證(我這個案例是1)?
更新: 顯然,無論我如何改變link_to,它一直試圖去控制器中的「顯示」醫療記錄,而不是動物方法。
更新: 如果我窩我的表單中的窗體它正常工作......但不是第一個記錄中列出:
<%= form_tag("/medicalrecords/animal") do %>
<%= hidden_field_tag(:animal_id, animal.id) %>
<%= submit_tag("Add") %>
<% end %>
但是,我不能讓一個表單中的表單。所以,我必須將其轉換爲與帖子方法的鏈接。
link_to示例我已經列出了正確的參數值,但它將它發佈到medicalrecords#show而不是medicalrecords#animal。
任何人都知道我需要做什麼來解決這個問題?
我認爲'/ medicalrecords/animal'要去'MedicalRecordsController#show''而不是'MedicalRecordsController#animal'。路線按其定義的順序進行解析。 你能否提供請求的http方法? 此外,你可以檢查路線,看到類似的路線之前定義? – siliconsenthil
@ vss123你是對的。它將去#show vs #animal。用:method => post我希望鏈接將使用post方法。 –