• Ruby on rails开发从头来(windows)(十五)添加用户


    从这篇开始,我们来实现一组用户管理的功能,首先是添加用户。

     

    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,但是我们到数据库里,已经可以看到用户添加进去了,并且密码已经进行了加密,如图:
     

  • 相关阅读:
    如何提高代码质量(管理篇):代码复查
    Codeforce 239 B. Easy Tape Programming
    Codeforces Round #530 (Div. 1) 1098A Sum in the tree
    Codeforce 1098-A
    8月5日加油吧,菜鸡
    8月5日训练日记
    疯子的算法总结(七) 字符串算法之 manacher 算法 O(N)解决回文串
    疯子的算法总结(六) 复杂排序算法 ① 归并排序 merge_sort()
    疯子的算法总结(五) 矩阵乘法 (矩阵快速幂)
    疯子的算法总结(四)贪心算法
  • 原文地址:https://www.cnblogs.com/dahuzizyd/p/Ruby_Rails_dotnet_study_15.html
Copyright © 2020-2023  润新知