我正在努力应对这个设计编程或配置错误。问题是,当我登录我的应用程序时,将我重定向到同一页面而不是主页。此外,如果我输入错误的邮件或错误的密码,则不会出现错误消息。
这是我的routes.rb:
Smarket::Application.routes.draw do
get "home/index"
resources :tipo_transaccions
resources :producto_rematados
resources :provincia_units
resources :propiedadclases
resources :compra_venta_normals
resources :clase_units
resources :prod_of_necs
resources :compra_venta_especials
resources :producto_necesitados
resources :compra_remates
resources :notificacions
resources :comisions
resources :remates
resources :pujas
resources :valors
resources :usuarios
resources :propiedads
resources :regions
resources :productos
resources :estado_remates
resources :ganancia_liquidas
resources :est_prod_of_necs
resources :estado_notificacions
resources :producto_ofertados
resources :comunas
resources :condicions
root :to => "home#index"
devise_for :usuarios, :controllers => { registrations: 'registrations' }, :skip => [:sessions, :registrations]
as :usuario do
get "entrar", to: "devise/sessions#new", :as => :new_usuario_session
post "entrar", to: "devise/sessions#create", :as => :usuario_session
delete "salir", to: "devise/sessions#destroy", :as => :destroy_usuario_session
get "registrarse", to: "devise/registrations#new", :as => :new_usuario_registration
post "registrarse", to: "devise/registrations#create", :as => :usuario_registration
end
end
usuario.rb:
class Usuario < ActiveRecord::Base
mount_uploader :avatar, FotoUploader
include ActiveModel::Validations
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
self.table_name = 'usuario'
self.primary_key = 'usuario_id'
validates :usuario_nombre_usuario, :presence => true
validates :usuario_rut, :presence => true
validates :usuario_rut, rut: true
validates :usuario_nombre, :presence => true
validates :usuario_apellidopat, :presence => true
validates :usuario_apellidomat, :presence => true
validates :email, :presence => true
validates :usuario_calle, :presence => true
validates :usuario_numero_calle, :presence => true
validates :usuario_villa, :presence => true
belongs_to :usuario
belongs_to :comuna
和app / views / devise / session / new.html.erb:
<div class="login">
<div class="wrap">
<div class="col_1_of_login span_1_of_login">
<h4 class="title">New Customers</h4>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan</p>
<div class="button1">
<%= link_to "Crear cuenta", new_usuario_registration_path, :style => 'background: #555;
border:none;
color: #fff;
padding: 10px 20px;
cursor: pointer;
float: right;
font-family: "Exo 2", sans-serif;
outline: none;
font-size: 1em' %>
</div>
<div class="clear"></div>
</div>
<div class="col_1_of_login span_1_of_login">
<div class="login-title">
<h4 class="title">Login</h4>
<div id="loginbox" class="loginbox">
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => { :role => 'form'}) do |f| %>
<div>
<%= f.label :Email %><br />
<%= f.email_field :email, autofocus: true, :style => 'width:70%' %>
</div>
<div>
<%= f.label :Contraseña %><br />
<%= f.password_field :usuario_contrasena, autocomplete: "off", :style => 'width:70%' %>
</div>
<% if devise_mapping.rememberable? -%>
<div>
<%= f.check_box :remember_me %>
<%= f.label :remember_me, :style => 'float:left; outline: none; padding-right:10px; padding-top:3px; ' %>
</div>
<% end %>
<div><%= f.submit "Login", :style => 'background: #555;
border:none;
color: #fff;
padding: 10px 20px;
cursor: pointer;
float: right;
font-family: "Exo 2", sans-serif;
outline: none;
font-size: 1em'%></div>
<% end %><br>
</div>
</div>
</div>
<div class="clear"></div>
</div>
</div>
答案 0 :(得分:2)
因此,要在sign_in之后重定向到其他页面,您需要覆盖设计方法:
def after_sign_in_path_for resource
home_path
end
对于错误消息,您需要设置以下内容:
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name), :html => { :role => 'form'}) do |f| %>
<%= f.error_messages %>
........