2016-12-25 8 views
-1

ユーザコントローラのメソッド(abc)を使用して、deviseユーザレコードのいくつかの属性をリモートで更新しようとしています。Rails:定義されていないメソッド `abc_users_path '

ルート

devise_for :users, controllers: { confirmations: "users/confirmations", omniauth_callbacks: "users/omniauth_callbacks" } 

    resources :users, only: [:index, :show, :abc] do 
     get "/abc" => "users#abc" 
    end 

ユーザーコントローラー

def abc 
    user = user.find(params[:id]) 
    params[:abc].each do |key, value| 
     user.key = value 
    end 
    user.save! 
    respond_to do |format| 
     format.html { redirect_back(fallback_location: root_path) } 
     format.js # render users/abc.js.erb 
    end 
end 

ビュー

= link_to(abc_users_path(current_user, abc: true), remote: true) do 
    ABC 

スローされたエラー:

NoMethodError in Controller#method
undefined method `abc_users_path' for #<#:0xc2ee630>

私はそれぞれの回答を確認します。

答えて

2

user_abc_pathはコンソールルートでrails routesを実行して確認することができます。

+2

rails 5.0+を使用していない場合、コマンドは 'rake routes'です –

関連する問題