首页 > 编程语言 >Ruby实践—用户登录

Ruby实践—用户登录

时间:2023-05-26 11:37:11浏览次数:35  
标签:index end 登录 用户 html user login password Ruby


开发环境

Ruby:Ruby1.9.1

Rails:Rails2.3.5

Mysql:Mysql5.0.9

Driver:mysql-2.8.1-x86-mingw32.gem

IDE:Rubymine2.0.1

 

一、创建View/login

在View/login下创建login.html.erb、index.html.erb、loginFail.html.erb

login.html.erb代码如下:

<h1>Welcome to login!</h1>
<% form_tag do %>
 <table>
      <tr>
         <td>User name:</td>
         <td><%= text_field("user", "username") %></td>
     </tr>
     <tr>
         <td>Password:</td>
         <td><%= password_field("user", "hashed_password") %></td>
     </tr>
     <tr>
         <td></td>
         <td><input type="submit" value=" login " /> <input type="reset" value=" reset " /></td>
     </tr>
   </table>
<% end %>

 

index.html.erb代码如下:

<h1>Choose a page to look!</h1> <p><%= link_to 'Users', :controller=>"users",:action=>"index" %></p> <p><%=

link_to 'Products', :controller=>"products",:action=>"index"%></p>
<p><%= link_to 'Logout', :action=>"login"%></p>

loginFail.html.erb

<h1>Invalid user/password combination</h1>
<%form_tag do%>
     <%= link_to 'Back', :action=>"login" %>
<%end%>

 

二、创建login_contoller.rb

代码如下:

class LoginController < ApplicationController
  def login
     if request.get?
      session[:user_id] = nil
      @user = User.new
     else
      @user = User.new(params[:user])
      logged_in_user = @user.try_to_login

      if logged_in_user
         session[:user_id] = logged_in_user.id
         redirect_to(:action => "index")
      else
        # flash[:notice] = "Invalid user/password combination"
        redirect_to(:action => "loginFail")
      end
    end
  end

  def loginFail
    
  end
  #清空登录信息
  def reset
    params[:user]["username"]=null
    params[:user]["hashed_password"]=null
  end
end

三、修改user.rb

添加登录信息验证内容

def self.login(username, hashed_password)
    password = hash_password(hashed_password || "")
    find(:first,
    :conditions => ["username = ? and password = ?",username, password])
  end

  def try_to_login
    User.login(self.username, self.hashed_password)
  end

 

四、修改routes.rb

添加login映射规则

map.connect '/login/login',:controller=>"login",:action=>"login"

 

五、修改view/user/index.html.erb及view/product/index.html.erb

添加如下链接

<%= link_to 'Logout', :controller=>"login",:action=>"login" %>
<%= link_to 'Back to List', :controller=>"login",:action=>"index" %>

 

演示效果:

 

Ruby实践—用户登录_action

Ruby实践—用户登录_ruby_02

Ruby实践—用户登录_user_03

Ruby实践—用户登录_redirect_04

Ruby实践—用户登录_user_05

 

 

 

标签:index,end,登录,用户,html,user,login,password,Ruby
From: https://blog.51cto.com/u_16129500/6354484

相关文章

  • mysql创建用户及分配操作权限
    MySQL在安装时,会默认创建一个名为root的用户,该用户拥有超级权限,可以控制整个MySQL服务器,所以如果滥用root账户,对于系统来说是很不安全的。MySQL提供了以下3种方法创建用户。使用GRANT语句创建用户使用CREATEUSER语句创建用户在mysql.user表中添加用户1.使......
  • RUBY-FLEX实践—利用swfobject在RUBY工程中加载SWF
    开发环境:Ruby:Ruby1.9.1Rails:Rails2.3.5IDE:RubyMine2.0.1FlexBuilder:FlexBuilder4 开发思路:1)在FlexBuilder中创建Flex工程2)在RubyMine中创建Rails工程3)将Flex工程bin-debug下编译的swfobject.js拷贝至Ruby工程指定位置4)引用Flex工程编译后的html中的内容实现在Rails页面中嵌......
  • 揭秘百度IM消息中台的全量用户消息推送技术改造实践
    本文内容由百度技术团队分享,原题“基于公共信箱的全量消息实现”,为了帮助理解,有较多修订、内容重组和重新排版。1、引言百度的IM消息中台为百度APP以及厂内百度系产品提供即时通讯的能力,提供包括私聊、群聊、聊天室、直播弹幕等用户沟通场景,并帮助业务通过消息推送触达用户。如......
  • expdp同一个用户下的多表导出导入
    expdpexpuser/oracleparfile=exptable.parcontent=metadata_onlycluster=n编辑exptable.par文件moreexptable.pardumpfile=mdm.dmplogfile=mdm.logschemas=mdmdirectory=expdp_dmpexclude=statisticsflashback_scn=3523577018PARALLEL=4COMPRESSION=allinclude=TA......
  • 浅析预付费用户电能管理系统的设计与应用
    罗轩志江苏安科瑞电器制造有限公司   江苏江阴   214405    摘要:该设计解决了IC卡预付费电能表存在的问题,同时继承了先购电后用电的管理模式.电力部门的管理微机通过RS485网络对电能表进行管理,以防止用户窃电;选用射频卡作为用户卡以解决IC卡易被污染和损坏的问题。  ......
  • 《用户故事与敏捷方法》阅读笔记1
    第一章介绍了用户故事的概念及其作用。用户故事是对于软件的需求描述,它从最终用户的角度出发,强调的是用户的需求与期望,而非技术实现细节。用户故事有助于开发团队更好地理解用户需求,指导团队进行有效的软件开发。第二章讨论了用户故事的优点与不足。用户故事的优点包括易于理解、......
  • 微信小程序授权登录
    需要的数据库字段:openid,nickName,session_key 需要Token,去官网现在jwt的扩展JSONWebTokenLibraries-jwt.io在app下面创建一个server目录接着新建一个Token类下面是封装Token的代码<?phpnamespaceApp\server;useFirebase\JWT\JWK;useFirebase\JWT\JWT;class......
  • 1005.Django项目用户功能之认证权限以及班级管理
    一、Token1.Token概述在计算机身份认证中是令牌(临时)的意思,在词法分析中是标记的意思。一般作为邀请,登录系统使用Token、令牌、代表执行某些操作的权利的对象。更通俗点可以叫暗号,在一些数据传输之前,要先对暗号的核对,不同的暗号被授权不同的数据操作。方法:①引入--客户端请求......
  • Linux首次登录入与寻求帮助(Linux的简单使用)
    Linux首次登录入与寻求帮助一些Linux中使用的常用命令与技巧:进入终端系统方式(纯文本环境):按ctrl+alt+F2会进入tty2,同理F3~F7均可分别进入tty3~tty7,只有tty1是图形化界面(如果已经安装了图形界面了),在文本环境中按ctrl+alt+F1会进入图形化界面在文本模式注销......
  • Exchange EMS 迁移用户邮箱
    查看邮箱数据库里所有的用户邮箱Get-Mailbox-DatabaseDB01获取邮箱数据库系统邮箱:Get-Mailbox-arbitration-DatabaseDB01将邮箱数据库testDB上的用户邮箱迁移至邮箱数据库testDB2:Get-Mailbox-DatabasetestDB|New-MoveRequest-TargetDatabasetestDB2查看迁移请求完成......