ここに投稿された他のソリューションに従おうとして24時間以上これに固執してきましたが、これを機能させることができません. Rails は初めてで、助けが必要です。
/users/edit ページを機能させて、ユーザーのパスワードを簡単に変更できるようにしたいと考えています。本来は current_password なしでやりたかったのですが、パスワードの変更・更新ができるのであれば入れたままでも構いません。
これが私がしたことです:
Devise Wikiの例に従い、Devise::RegistrationsController から継承するように指定したユーザー コントローラーに挿入しました。
class UsersController < Devise::RegistrationsController
...
end
ルートを変更しました:
devise_for :users, :controllers => { :registrations => 'users' } do
match '/users' => 'users#index'
end
そして、ここに私のモデルがあります:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessor :password, :password_confirmation, :current_password
attr_accessible :email, :password, :password_confirmation, :current_password, :remember_me, :full_name, :coach, :bio
validates :full_name, presence: true
end
作成した UsersController が Registrations コントローラーをオーバーライドし、パスワードを変更/更新できると想定していました。root_path へのリダイレクトが発生する範囲で機能します (これは、現在のパスワードなしで更新した後にのみ発生することを意図しています) が、新しいパスワードは保存されません (ログを確認したところ、保存されたことを示す SQL はありませんでした)...
何か案は?