The Last Day Of Summer

.NET技术 C# ASP.net ActiveReport SICP 代码生成 报表应用 RDLC
posts - 305, comments - 1913, trackbacks - 76, articles - 3
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
从这篇开始,我们来实现一组用户管理的功能,首先是添加用户。

 

1.         首先,我们要创建一个表保存用户信息,并且生成一个对应的model

创建表的脚本,在phpAdmin里执行就可以了:

create table users (

id int not null auto_increment,

name varchar(100) not null,

hashed_password char(40) null,

primary key (id)

)

然后在命令行生成Usermodel,如图:

 

然后再使用命令行生成controllerview

Z:\study\ruby\InstantRails\rails_apps\depot>ruby script/generate controller Login add_user login logout delete_user list_users

      exists  app/controllers/

      exists  app/helpers/

      exists  app/views/login

      exists  test/functional/

overwrite app/controllers/login_controller.rb? [Ynaqd] a

forcing controller

       force  app/controllers/login_controller.rb

   identical  test/functional/login_controller_test.rb

   identical  app/helpers/login_helper.rb

   identical  app/views/login/add_user.rhtml

       force  app/views/login/login.rhtml

   identical  app/views/login/logout.rhtml

   identical  app/views/login/delete_user.rhtml

   identical  app/views/login/list_users.rhtml

如图:

 

2.         下面修改Views\login目录下的add_user.rhtml文件的内容如下:

<% @page_title = "Add a User" -%>

<%= error_messages_for 'user' %>

<%= form_tag %>

       <table>

                     <tr>

                                   <td>User name:</td>

                                   <td><%= text_field("user", "name") %></td>

                     </tr>

                     <tr>

                                   <td>Password:</td>

                                   <td><%= password_field("user", "password") %></td>

                     </tr>

                     <tr>

                                   <td></td>

                                   <td><input type="submit" value=" ADD USER " /></td>

                     </tr>

       </table>

<%= end_form_tag %>

3.         再修改model目录下的user.rb文件,内容如下:

require "digest/sha1"

class User < ActiveRecord::Base

  attr_accessor :password

  attr_accessible :name, :password

  validates_uniqueness_of :name

  validates_presence_of :name, :password

  def before_create

    self.hashed_password = User.hash_password(self.password)

  end

 

  def after_create

    @password = nil

  end

private

  def self.hash_password(password)

    Digest::SHA1.hexdigest(password)

  end

end

在这里,我们看到使用了SHA1算法来加密password

OK,现在来看看效果,如图:

 

这时候,我们输入用户名和密码,点击“ADD USER”按钮,会提示没有对应的Action,但是我们到数据库里,已经可以看到用户添加进去了,并且密码已经进行了加密,如图:
 

Feedback

#1楼    回复  引用  查看    

2007-09-27 15:04 by temptation      
哈哈哈,又有新的读书笔记看了,谢谢博主

#2楼 [楼主]   回复  引用  查看    

2007-09-27 21:24 by Cure      
@temptation
多谢支持!!

#3楼    回复  引用  查看    

2007-10-26 11:11 by 半山旅客      
不错,学习

#4楼    回复  引用    

2007-11-17 22:43 by kalala [未注册用户]
是不是缺了些东西?我添加用户没反应?
LoginController里怎么是这样?缺了吧?
class LoginController < ApplicationController

def add_user
end

def login
end

def logout
end

def delete_user
end

def list_users
end
end

#5楼    回复  引用    

2007-12-08 11:26 by Reezon [未注册用户]
@kalala
需要修改add_user里面的内容:

def add_user
@user = User.new(params[:user])
@user.save
end

#6楼    回复  引用    

2008-06-24 21:09 by crystalat [未注册用户]
rails2.0好像已经把end_form_tag去掉了.

上面add_user.rhtml的代码应该怎样改呢

谢谢博主

标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: