程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Ruby on rails開發從頭來(windows)(十五)-添加用戶

Ruby on rails開發從頭來(windows)(十五)-添加用戶

編輯:關於JAVA

從這篇開始,我們來實現一組用戶管理的功能,首先是添加用戶。

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,但是我們到數據庫裡,已經可以看到用戶添加進去了,並且密碼已經進行了加密,如圖:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved