サインアップページの検証が含まれていますが、登録ページを読み込んだとき エラーが表示されます。送信ボタンをクリックするとエラーが表示されるはずです 私は何をする必要がありますか?フォーム検証での問題 - Ruby on Rails
私のサインアップページ
<% if !flash[:notice].blank? %>
<div class="notice">
<%= flash[:notice] %>
</div>
<% end %>
<%= form_for @user,validate: true do |f| %>
<% if [email protected]? %>
<% if @user.errors.any? %>
<ul class="Signup_Errors">
<% for message_error in @user.errors.full_messages %>
<li>* <%= message_error %></li>
<% end %>
</ul>
<% end %>
<% end %>
<%= f.label("Name:") %>
<%= f.text_field(:user_name, class: "form-control") %></br>
<%= f.label("Email Address:") %>
<%= f.text_field(:email_id, class: "form-control") %></br>
<%= f.label("Password:") %>
<%= f.password_field(:password, class: "form-control") %></br>
<%= f.label("Confirm Password:") %>
<%= f.password_field(:password_confirmation, class: "form-control") %></br>
<%= f.submit("Register",class: "btn btn-primary") %>
<a class="btn btn-primary" style="margin-left:20px" href="/login" >Login</a>
<% end %>
私は私の検証が含まれていた私のモデルは
User.rb
class User < ApplicationRecord
has_many :reviews
has_secure_password
EMAIL_REGEX = /\A[\w+\-.][email protected][a-z\d\-]+(\.[a-z\d\-]+)*\.[a-z]+\z/i
validates :user_name, :presence => true, :on => :create, :uniqueness => true, :length => { :in => 3..20 }
validates :email_id, :presence => true, :on => :create, :uniqueness => true, :format => EMAIL_REGEX
validates :password, :presence => true, :on => :create, :confirmation => true #password_confirmation attr
validates :password_confirmation, :presence => true
end
コントローラ
def new
puts "****Inside New Method******"
@user = User.new
end
def create
puts "****Inside create Method******"
@user = User.new(user_params)
puts @user.user_name
if @user.save
puts "** USER DETAILS SAVED SUCCESSFULLY****"
flash[:notice] = "Registration successful, please login"
flash[:color] = "valid";
redirect_to "/login"
else
flash[:notice] = "Invalid Form"
flash[:color] = "invalid"
end
end
私はロードするとページ、Erro rは送信ボタンをクリックする前に表示されます 私は以下を含みます:on =>:作成しますが動作しません
助けてください!
コントローラコードを投稿できますか?クライアント側の検証宝石を使用しようとしていますか?または単にサーバー側の検証(通常/デフォルト)? – mrlew
私はコントローラコードを掲示しました。クライアント側の検証ではなく、通常の検証を使用しています – Ajaykumar