我将此作为我的更新路线:
def update
params.require(:player_id)
params.require(:id)
@draft = Draft.find(params[:id])
redirect_to draft_draftees_path(@draft.id)
end
每当它进行重定向时,它会尝试执行put而不是获取到索引路由,因此它说: 没有路线匹配[PUT]“/ drafts / 28 / draftees”
我不知道为什么它会尝试做一个看跌期权。是因为它来自更新功能吗?我在这个页面上使用React,那么它与它有关吗?如何在更新路由中重定向到该索引路由?请帮忙!
[更新]这是我的routes.rb:
Rails.application.routes.draw do
get 'welcome/index'
get '/login' => 'sessions#new'
post '/login' => 'sessions#create'
get '/logout' => 'sessions#destroy'
get '/signup' => 'users#new'
post '/users' => 'users#create'
root 'welcome#index'
resources :users
resources :drafts do
resources :teams
resources :draftees
resources :players
end
end
答案 0 :(得分:0)
更改
redirect_to draft_draftees_path(@draft.id)
到
redirect_to draft_draftees_path(@draft)
因为它会将完整的草稿实例传递给被驱逐者的路径。 put请求的形成是因为你将@ draft.id传递给draftees路径,导致这样的请求
/drafts/:draft_id/draftees/:id
<强>更新强> 由于您使用的是嵌套资源,因此可能有两种重定向方式。
要获得第二个,您需要重定向为:
redirect_to(draft_draftees_path(@draftee.draft, @draftee)