[英]No route matches [PUT] error in active_admin
在active_admin局部中創建了一個表單輸入:
<%= semantic_nested_form_for @item, :url => admin_items_path(@item) do |f| %>
<fieldset class="inputs">
<ol>
<%= f.input :category %></br>
<%= f.input :title %>
<%= f.input :photo1 %>
<%= f.input :photo2 %>
</ol>
</fieldset>
<%= f.fields_for :ItemColors do |i| %>
<fieldset class="inputs">
<ol>
<%= i.input :DetailColor %>
<%= i.input :size, :input_html => { :size => "10" } %>
<%= i.link_to_remove "remove" %>
</ol>
</fieldset>
<% end %>
<%= f.link_to_add "add", :ItemColors %>
<%= f.actions %>
<% end %>
創建一個新項目,可以創建並拋出新項目,但是如果我確實更新了現有項目,則該路徑存在時會發生錯誤:
No route matches [PUT] "/admin/items.150" #150 is item_id
耙路:
batch_action_admin_items POST /admin/items/batch_action(.:format) admin/items#batch_action
admin_items GET /admin/items(.:format) admin/items#index
POST /admin/items(.:format) admin/items#create
new_admin_item GET /admin/items/new(.:format) admin/items#new
edit_admin_item GET /admin/items/:id/edit(.:format) admin/items#edit
admin_item GET /admin/items/:id(.:format) admin/items#show
PUT /admin/items/:id(.:format) admin/items#update
DELETE /admin/items/:id(.:format) admin/items#destroy
幫助解決這個問題
UPD
我找到了錯誤,但還不知道如何解決
升級是一個要求:
PUT "/admin/items.150"
但應:
PUT "/admin/items/150"
我不明白該地址出現在哪里。
您的表單正在使用:method => POST
提交數據,而您的路線希望使用PUT
,則POST
僅匹配
POST /admin/items(.:format) admin/items#create
因此,它認為您的ID是.:format
參數。 因此失敗了。 您需要將form:method更改為PUT
而不是POST
。
您應該能夠做到這一點:
<%= semantic_nested_form_for [:admin, @item] do |f| %>
作為@cdesrosiers指出, No route matches [GET] "/items/152"
錯誤,您隨后得到的是可能是因為你重定向到@item
在你的控制器create
和update
的動作,當你真正需要做的是:
redirect_to admin_item_path(@item)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.