ruby-on-rails – 在轨道上的ruby中未定义的方法’authenticate
发布时间:2020-12-17 03:18:30 所属栏目:百科 来源:网络整理
导读:我是 Ruby on Rails应用程序的新手,我已经创建了CRUD但仍然堆叠在Login注销功能. 这是我的Sessions_controller: def newenddef create user = User.find_by(email: params[:session][:email].downcase) if user user.authenticate(params[:session][:passke
我是
Ruby on Rails应用程序的新手,我已经创建了CRUD但仍然堆叠在Login&注销功能.
这是我的Sessions_controller: def new end def create user = User.find_by(email: params[:session][:email].downcase) if user && user.authenticate(params[:session][:passkey]) # Log the user in and redirect to the user's show page. else # Create an error message. flash[:danger] = 'Invalid email/password combination' # Not quite right! render 'new' end end def destroy end 这是我的观点:new.html.erb <%= form_for(:session,url: login_path) do |f| %> <%= f.label :email %> <%= f.email_field :email,class: 'form-control' %> <%= f.label :passkey%> <%= f.password_field :passkey,class: 'form-control' %> <%= f.submit "Log in",class: "btn btn-primary" %> <% end %> 这是我的模特: class User< ActiveRecord::Base validates :first_name,:presence => true,:length => { :in => 3..20 } validates :last_name,:length => { :in => 3..20 } validates :email,:uniqueness => true,format: { with: /A[^@s]+@([^@.s]+.)+[^@.s]+z/ } validates :passkey,:confirmation => true,:length => {:in => 6..20} end 当我单击“登录”按钮,然后显示此错误:
我该如何解决这个错误? 我正在使用ruby 1.9.7 Rails 4.2.5& mysql2 那对我很有帮助,拜托. 解决方法
只需添加
has_secure_password 到您的用户模型.确保添加 gem 'bcrypt-ruby' 到你的gemfile. 在用户模型中添加一个名为“password_digest”的字段,其中包含字符串. 而已. Rails会像魅力一样为你处理用户身份验证,你也可以在你的模型上使用#authenticate方法! 编辑: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 将C库集成到iPhone应用程序中
- postgresql安装:initdb数据目录不是空的?
- 很少教程会教你的:ReactJS最佳实践
- c – GCC中枚举开关的控制流程分析不足
- cocos2d-iphone – Cocos2d – 一种获取当前场景的方法?
- oracle – 从DD / MM / YYYY HH:MM:SS到YYYYMM的日期转换
- 【XML系列】-----XML文档格式(一)
- 【SWF】 —— 极限研究
- reactjs – React 16.3.* context Provider Err:期望的字符
- HNibernate报错了 XML validation error: 未声明“urn:nhib