我已经自定义了设计注册表单以显示在我的自定义页面中。我在主页上显示我的注册表。http://awesomescreenshot.com/0815w1h9b0。
我需要在表单本身的顶部显示错误。如果我在未填写字段的情况下单击提交按钮,则会重定向到出现错误的“ /users ”页面。我需要在我拥有表单的同一页面中显示错误。
application_helper.rb
module ApplicationHelper
def resource_name
:user
end
def resource_class
User
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
end
application_controller.rb
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
before_action :authenticate_user!
before_filter :configure_devise_params, if: :devise_controller?
def configure_devise_params
devise_parameter_sanitizer.for(:sign_up) do |u|
u.permit(:first_name, :last_name, :gender, :dob, :token, :contact_number, :profile_by, :email, :password, :password_confirmation ,:religion_id ,:caste_id ,:sub_caste_id)
end
devise_parameter_sanitizer.for(:account_update) do |u|
u.permit(:first_name, :last_name, :dob, :contact_number, :profile_by, :email, :current_password)
end
end
# REDIRECT USER TO OUR CUSTOM PATH AFTER LOGIN
def after_sign_in_path_for(resource)
root_path
end
def after_update_path_for(resource)
show_profile_path
end
# REDIRECT USER TO OUR CUSTOM PATH AFTER LOGOUT
def after_sign_out_path_for(resource)
root_path
end
end
路线.rb
Rails.application.routes.draw do
devise_for :users
get '/home'=>'home#index', as: 'home_path'
end
设计视图下的new.html.erb
<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
<div class="field">
<%= f.hidden_field :token, value: rand(13 ** 13), autofocus: true %>
</div>
<div class="field">
<%= f.label :First_Name %>
<%= f.text_field :first_name, autofocus: true, placeholder: 'Enter First Name' %>
</div>
<div class="field">
<%= f.label :Last_Name %>
<%= f.text_field :last_name, autofocus: true, placeholder: 'Enter Last Name' %>
</div>
<div class="field">
<%= f.label :date_of_birth %>
<%= f.text_field :dob, class: 'datepicker', placeholder: 'Enter Date of Birth' %>
<script type="text/javascript">
$('.datepicker').datepicker()
</script>
</div>
<div class="field">
<%= f.label :gender %>
<%= f.radio_button :gender, '1', :checked => true %> <span class="radio-names">Male</span>
<%= f.radio_button :gender, '2' %><span class="radio-names">Female</span>
</div>
<div class="field">
<%= f.label :email %>
<%= f.email_field :email, autofocus: true, placeholder: 'Enter Email Address' %>
</div>
<div class="field">
<%= f.label :profile_password %>
<% if @minimum_password_length %>
<em>(<%= @minimum_password_length %> characters minimum)</em>
<% end %>
<%= f.password_field :password, autocomplete: "off", placeholder: 'Enter Password' %>
</div>
<div class="field">
<%= f.label :confirm_password %>
<%= f.password_field :password_confirmation, autocomplete: "off", placeholder: 'Enter Confirm Password' %>
</div>
<div class="field">
<%= f.label :register_for %>
<%= f.select :profile_by, [['Myself', 1], ['Dad', 2], ['Mom', 3], ['Brother', 4], ['Sister', 5], ['Relative', 6], ['Son', 7], ['Daughter', 8]],{},{class: 'select_tag'} %>
</div>
<div class="field">
<%= f.label :contact_number %>
<%= f.text_field :contact_number, autofocus: true, placeholder: 'Enter Contact Number +91' %>
</div>
<div class="field">
<%= f.label :Religion %>
<%= f.select :religion_id, options_from_collection_for_select(Religion.all, :id, :religion),{},{class: 'select_tag'} %>
</div>
<div class="field">
<%= f.label :caste %>
<%= f.select :caste_id, options_from_collection_for_select(Caste.all, :id, :caste_name),{},{class: 'select_tag'} %>
</div>
<div class="field">
<%= f.label :subcaste %>
<%= f.select :sub_caste_id, options_from_collection_for_select(Subcaste.all, :id, :sub_caste_name),{},{class: 'select_tag'} %>
</div>
<br>
<br>
<div class="actions">
<%= f.submit "Register", class: 'register_button' %>
</div>
<% end %>
如果在注册过程中出现错误,请帮助我如何在同一页面上显示错误。