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" %>

演示效果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值