1

ビュー/質問/show.html.erbに、ユーザーがタグを削除できるリンクがあります。

 <%=link_to "x",
:remote => true,
:url => remove_question_tag_path(@question, tag),
:method => :delete,
:html => { :id => "delete-#{tag.name.parameterize}"} %>

<% end %> 

remove_question_tag_pathルートは、質問リソース内にタグリソースをネストすることによって作成されます。

 resources :questions do 
    resources :answers do 
      member { post :vote }
      end
      resources :tags do
          member do 
            delete :remove
          end 
      end
  end 

レーキルートは、URLで使用しようとすると、このルートが存在することを示しています

remove_question_tag DELETE /questions/:question_id/tags/:id/remove(.:format)               tags#remove

ただし、リンクをクリックすると、レーキルートがルートの宛先であることが示されているため、タグコントローラーの削除アクションではなく、質問コントローラーの表示アクションにgetリクエストを送信します。

Started GET "/questions/25?html%5Bid%5D=delete-outdoors&method=delete&url=%2Fquestions%2F25%2Ftags%2F2%2Fremove" for 127.0.0.1 at 2013-03-26 19:01:00 -0700

私が間違っているかもしれないことを説明できますか?

4

1 に答える 1

1

これを試して:

<%= link_to "x", remove_question_tag_path(@question, tag), :remote => true, :method => :delete, :html => { :id => "delete-#{tag.name.parameterize}"} %>

説明:リンクにurlを指定しないため、指定されlink_toたすべての引数のハッシュを作成し、"x"それらをurlオプションとして扱います。したがって、オプションはリクエストを生成する代わりにパラメータに:method追加されるだけです。GETDELETE

于 2013-03-27T09:14:15.590 に答える