ruby-on-rails – 无法将电子邮件地址字段放在登录表单(Authlogic)上

栏目: Ruby · 发布时间: 7年前

内容简介:代码日志版权声明:翻译自:http://stackoverflow.com/questions/1331705/cant-put-email-address-field-on-login-form-authlogic

所以我有一个这个user_sessions /新视图的Authlogic工作正常:

<% form_for @user_session, :url => user_session_path do |f| %>

  <% if @user_session.errors.present? %>
    Invalid username or password
  <% end %>

  <%= f.label :login %><br />
  <%= f.text_field :login %><br />
  <br />
  <%= f.label :password %><br />
  <%= f.password_field :password %><br />
  <br />
  <%= f.check_box :remember_me, :style => 'margin-right: 10px' %>
  <%= f.label :remember_me %><br />
  <br />
  <%= f.submit "Login" %>
<% end %>

但是当我改变的时候

<%= f.label :login %><br />
  <%= f.text_field :login %><br />

<%= f.label :email %><br />
  <%= f.text_field :email %><br />

当我加载视图时,我收到此错误:

undefined method `email' for #<UserSession: no credentials provided>

但是当然,我的用户表有一个电子邮件字段等

你会这样做错了:

尝试:

class UserSession < Authlogic::Session::Base 
  find_by_login_method :find_by_login_or_email
end

在user.rb中

def self.find_by_login_or_email(login)
   find_by_login(login) || find_by_email(login)
end

您的UserSession没有电子邮件的概念(它只是知道登录).

它运行一个找到一个给定登录的用户的过程,您可以拦截和覆盖(使用find_by_login_method).另外您还可以覆盖login_field和password_field甚至verify_password_method

代码日志版权声明:

翻译自:http://stackoverflow.com/questions/1331705/cant-put-email-address-field-on-login-form-authlogic


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

从需求到产品:0岁产品经理进阶之道

从需求到产品:0岁产品经理进阶之道

权莉 / 人民邮电出版社 / 2018-7 / 49.80元

本书主要针对刚入职的初级产品经理,从贴近工作状态的场景切入,对各阶段的知识点进行分类总结,旨在提供一套经过实践检验的产品方法论,为读者从初级产品经理成长为产品经理奠定坚实的基础。 书中提炼的方法和案例涵盖初级产品经理工作的方方面面,从基本技能到思维方式,从需求管理到产品规划定义,从框架选型到流程梳理,从工作模块拆解到案例剖析,用具体且贴合实际工作场景的内容,还原真实的产品工作方法及实践案例,既有方......一起来看看 《从需求到产品:0岁产品经理进阶之道》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

随机密码生成器
随机密码生成器

多种字符组合密码