在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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) ) 然后在命令行生成User的model,如图: 然后再使用命令行生成controller和view: 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,但是我们到数据库里,已经可以看到用户添加进去了,并且密码已经进行了加密,如图: |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论