ログイン機能のバリデーションについてです。
ログイン機能にはdeviseを使いました。
新規登録はdeviseを用いて自動的にバリデーションが追加していますが、ログイン機能には
自分で実装しないといけません。
ログインファイル
.new-field %h3 Log in = form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| = render "devise/shared/error_messages", resource: resource .field = f.label :email %br/ = f.email_field :email, autofocus: true, autocomplete: "email", class: "text" .field = f.label :password %br/ = f.password_field :password, autocomplete: "current-password", class: "text" - if devise_mapping.rememberable? .field = f.check_box :remember_me = f.label :remember_me .actions = f.submit "Log in", class: "submit-button"
バリデーションかけた場合の処理
- if resource.errors.any? %h4 .error_explanation エラーです
バリデーションかけた場合の処理に関しては、この記述で新規登録はメッセージが出るので間違いないと思います。
バリデーションを表示する記述はログインファイルの4行目に記述しています。
この記述に関しては新規登録と同じメッセージを表示させたいので、既にバリデーションが出来ている新規登録のビューからコピペしました。
なので記述は間違いないと思います。
他にどこか記述しないといけないのでしょうか?
普通バリデーションかける時はコントローラーにif文で記述すると思いますが、ログイン機能の場合も必要でしょうか?
新規登録の時はコントローラーが必要ないと思いますのでログイン機能もいらないと思ったのですが・・・
sessions_controller.rb
def new @message = Message.new if @message.save redirect_to :root else render 'sessions/new' end
一応コントローラーも作成してみましたが、メソッドエラーもエラーメッセージも違うので、コントローラーが原因ではないような気がします。
躓いてしまいましたので、ご回答よろしくお願いします。