2016-06-14 8 views
0

私はそのエラーを取得工夫とユーザールートはConfilect

ActionController::UrlGenerationError in Devise::Registrations#edit 
No route matches {:action=>"friend_requests", :controller=>"devise/users", :format=>"1"} 

ルートリンクしているページ

<%= link_to "(#{User.count_friend_requests(current_user)}) Friends Requests", :controller => "users", :action=>"friend_requests"%> 

をクリックすると、次の取得

devise_for :users, :path_prefix => 'my' 
resources :users, :only => [:friend_requests] do 
    get "friend_requests", :on => :collection 
end 

users_controller

def friend_requests 
    @frnds = User.find_friend_requests(current_user) 
end 

rake routes

+1

"rake routes"出力を提供できますか?私はdevise_forがdevise/usersやresourcesのようなルートを作成すると確信しています。ユーザーはlocalhost:3000/users/friend_requestsのようなルートを作成します。 – AKovtunov

+0

編集してください、そうです、解決策が見つかりません。 –

+1

代わりに名前付きルートを試してみませんか? 'friend_requests_users_path'? – Leito

答えて

1

ふむ、あなたのルートが

/my/users/.. 

resources :usersのようなものですので、あなたは、任意の接頭辞なしで、あなたのコードをマウントし、接頭辞/my/と工夫を搭載しました。

あなたはまた、私はレールが(ないあなたの中工夫/ユーザーにあなたの方法を探していることがわかりプレフィックスmyを削除するか、または/my/users/friend_requests/

のようなパスを得るためにあなたのresources

scope "my" do 
    resources :users, :only => [:friend_requests] do 
    get "friend_requests", :on => :collection 
    end 
end 

に変更してくださいユーザー)コントローラ

No route matches {:action=>"friend_requests", :controller=>"devise/users", :format=>"1"} 

パッチiあなたはdeviseのユーザコントローラにパッチを当てる方法を見てください。