登录后设计刷新相同的登录表单

时间:2014-06-27 20:02:34

标签: ruby ruby-on-rails-4 devise

我正在努力应对这个设计编程或配置错误。问题是,当我登录我的应用程序时,将我重定向到同一页面而不是主页。此外,如果我输入错误的邮件或错误的密码,则不会出现错误消息。

这是我的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>

1 个答案:

答案 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 %>
........