簡體   English   中英

如何從link_to助手中調用“創建”動作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM