• 締切済み

Rubyのパスワード変更画面について

rubyでのプログラム作成についての質問です。 パスワードの変更画面を作成したいのですが、作り方がよくわかりません。 会社でrubyを使用したプログラム作成を命じられましたが、社内にrubyを使用できる人がいないので質問できず困っています。 パスワードを変更する際に、パスワードの入力と確認用パスワードの入力をして、 双方が一致したらパスワードを変更、双方が不一致ならエラーメッセージを表示するようにしたいのですが、どうしたらいいのでしょうか。 現在、コントローラ内は以下のようになっています。 def new @user = User.new respond_to do |format| format.html # new.html.erb format.xml { render :xml => @user } end end def create @user = User.new(params[:user]) if(params[:password]!=params[:password_confirm]) ←ここでパスワードと確認用パスワードをチェック? flash[:notice] = 'パスワードが間違っています。' redirect_to:back return end respond_to do |format| if @user.save flash[:notice] = 'User was successfully created.' format.html { redirect_to(@user) } format.xml { render :xml => @user, :status => :created, :location => @user } else format.html { render :action => "new" } format.xml { render :xml => @user.errors, :status => :unprocessable_entity } end end end パスワードチェックをしているつもりはあるのですが、パスワードと確認用パスワードが違っていても現在は登録処理がされてしまいます。どうしたらいいのでしょうか。 大変困っているのでどなたか教えてください。

みんなの回答

  • ggaogg
  • ベストアンサー率43% (38/88)
回答No.1

質問者さんのプログラムを見ると、Ruby on Railsを使用されているように見えますので、RoRであることを前提に回答します。 検証プログラムを自作する前に、RoRには、入力値を検証するヘルパーがあるので、今回の内容だと、validates_confirmation_of ヘルパーを使用するべきです。RoRは初心者にはほんとわかりづらいですが、validates_confirmation_ofヘルパの説明への直リンク載せておきます。 http://guides.rubyonrails.org/activerecord_validations_callbacks.html#validates-confirmation-of もしRoRでなかったらごめんなさい。。

nanasejp
質問者

お礼

ありがとうございます。 うまくやることができました!

関連するQ&A