これが私のルートファイルです:
devise_for :users, :controllers => { :omniauth_callbacks => "users/omniauth_callbacks" }
resources :users do
post 'update_and_sign_in', :on => :member
end
レーキルートからの出力は次のとおりです。
update_and_sign_in_user POST /users/:id/update_and_sign_in(.:format) users#update_and_sign_in
users GET /users(.:format) users#index
POST /users(.:format) users#create
new_user GET /users/new(.:format) users#new
edit_user GET /users/:id/edit(.:format) users#edit
user GET /users/:id(.:format) users#show
PUT /users/:id(.:format) users#update
DELETE /users/:id(.:format) users#destroy
コントローラは次のとおりです。
def update_and_sign_in
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
redirect_to root_path, :notice => "You have successfully signed up"
else
render 'get_email'
end
end
フォームは次のとおりです。
=form_for(@user,:url => update_and_sign_in_user,:method => "put", :html => {:class => 'well'}) do |f|
このエラーが発生しましたが、その理由や修正方法がわかりません。
No route matches {:action=>"update_and_sign_in", :controller=>"users"}