0

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"

アドレスの「.」がどこにあるのかわかりません。

4

2 に答える 2

1

:method => POSTあなたのフォームはあなたのルートが期待している間にデータを送信していますPUTPOST一致するだけです

POST /admin/items(.:format) admin/items#create

したがって、IDは.:formatパラメータであると見なされます。したがって、失敗します。PUTform:methodを。の代わりに変更する必要がありますPOST

于 2012-10-04T20:06:18.433 に答える
0

これを行うことができるはずです:

<%= semantic_nested_form_for [:admin, @item] do |f| %>

@cdesrosiers が指摘しているように、実際にこれを行う必要があるときに、コントローラーとアクションでNo route matches [GET] "/items/152"リダイレクトしているため、その後に発生するエラーはおそらく次のとおりです。@itemcreateupdate

redirect_to admin_item_path(@item)
于 2012-10-04T20:08:03.760 に答える