![](/img/trans.png)
[英]Ruby on Rails: Can I do a “link_to” to call a create action?
[英]How can I call a “create” action from the link_to helper?
我已經看到這里回答了這個問題,但不幸的是,該答案不起作用。 僅供參考,這是Rails 2.3.11應用程序。
我想使用此link_to幫助器針對RESTful資源調用create:
link_to("Add", part_types_path(myid), :method => :post)
現在,非常非常奇怪的是,Rails應用程序將我傳遞給URL幫助器的ID解釋為“格式”! 因此,鏈接顯示為:
/part_types.12345
其中“ 12345”是ID。 瘋!
我肯定會缺少一些非常基本的東西,但是我從未見過Rails嘗試將對象id稱為一種格式。
這是路線條目:
map.resources :part_types, :collection => { :part_list => :get }
這是“耙路”的結果
POST /part_types(.:format) {:controller=>"part_types", :action=>"create"}
請注意,缺少任何類型的ID!
如果方法是GET
,則名稱為part_types
的路由將引用index
操作,如果方法是POST
則引用create
操作。 這些動作都沒有參數化的路徑(與show
,應該看起來像/part_types/:id
)。 create
應該創建一個新記錄並返回其ID-您通常不會在請求中傳遞它們,因為在服務器上更容易生成唯一的ID。
您的第一個參數將被解釋為格式,因為路由沒有任何參數。 將此與以下內容進行比較:
part_type_path(1)
應該返回/part_types/1
part_type_path(1, :json)
應該返回/part/types/1.json
。 檢查actionpack / lib / action_dispatch / routing / mapper.rb以了解如何定義resources
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.