当前位置:首页 > 开发 > Web前端 > 前端 > 正文

ruby-日记

发表于: 2015-07-10   作者:任清宇   来源:转载   浏览:
摘要:        刚开始学ruby 最近在用ruby  on  rails  框架做一个简单的小网页 ,最简单的就是 注册和登录问题了 ,看似简单的功能可能对于像我这样的新手也会能迷茫,还好网上有许多的开源资料供我们学习. 首先是注册  在我们的view中建立注册页面 sinup.html.erb,然后在建立相对应的 控

       刚开始学ruby 最近在用ruby  on  rails  框架做一个简单的小网页 ,最简单的就是 注册和登录问题了 ,看似简单的功能可能对于像我这样的新手也会能迷茫,还好网上有许多的开源资料供我们学习.

首先是注册  在我们的view中建立注册页面 sinup.html.erb,然后在建立相对应的 控制器 和 路由 以及 数据库表单   

rails g controller users signup
rails g model user name:string email:string password_digest:string

     密码的字段 这样子是进行加密的字段 毕竟即使是管理员 我觉得也不应该能看到明文的密码  加密后的密码存放在password_digest字段当中. 当然最后不要忘记

 

 

rake db:migrate

 进行数据库迁移

 

 

get "signup" => "users#signup", :as => "signup"

 

 

添加相应的路由 users要对应view 中文件夹的名字

到 users_controller.rb 中

 

def signup
  @user = User.new
end

 添加上这些内容

 

路由中添加资源式路由

 

resources :users, only: [:create]

 对应的注册页面 添加金俩一个表单

 

 

<div class="signup-form-container clearfix">
  <div class="signup-form">
    <%= form_for @user do |f| %>
        <dl class="form">
          <dt><%= f.label :name, "用户名" %></dt>
          <dd><%= f.text_field :name %></dd>
        </dl>
        <dl class="form">
          <dt><%= f.label :email %></dt>
          <dd><%= f.text_field :email %></dd>
        </dl>
        <dl class="form">
          <dt><%= f.label :password, "密码" %></dt>
          <dd><%= f.password_field :password %></dd>
        </dl>
        <dl class="form">
          <dt><%= f.label :password_confirmation, "请再输入一次" %></dt>
          <dd><%= f.password_field :password_confirmation %></dd>
        </dl>
        <p><%= f.submit "注册", :class => "signup-button btn btn-primary" %></p>
    <% end %>
  </div>
</div>

 再来添加点样式 app/assets/stylesheets/sections/users.css.scss

 

 

.signup-form-container, .login-form-container{
  width: 670px;
  margin: 50px auto;
  border:1px solid #ddd;
  padding: 2em;
  .signup-form, .login-form {
    width: 100%;
  }
  .signup-button, .login-button {
    padding: 13px;
    margin-top: 15px;
    width: 100%;
  }
}

 这里停下来,看着这张页面,想想后台要有哪些代码。密码和确认密码项目要匹配,密码存入数据库的时候要加密等等这些任务如果手写是比较麻烦的,好在 Rails 内置了 has_secure_password 这个方法。

 

使用 has_secure_password

打开 has_secure_password 的文档,可以看到要使用它有两个先决条件,第一,要在 Gemfile 里面添加 Bcrypt,第二,就是要求 users 这张表里有 password_digest 这个字段,这个前面咱们已经生成过了。

到 user.rb 中,添加

 

rails c
u = User.first
 has_secure_password

 /signup 的表单中填写内容,提交会报错:找不到 users#create ,所以咱们就到 users_controller.rb 中,添加

ef create
  user = User.new(user_params)
  user.save
  redirect_to :root
end

private
  def user_params
    params.require(:user).permit!
  end

 这样就注册成功啦。到数据库中看一下

 

rails c
u = User.first

 可以看到密码是以加密的形式存储的。

这样可以认为用户注册就成功了。

 

 

ruby-日记

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
我的这个Lenove本子上有一个“NOVO”键,原先一直不怎么用,后来发现,原来是Lenovo一个小系统,可以
昨天在公交上鼻子流血如井喷一般,搞得满手是血,还好一看血的颜色就知道不贫血;更搞笑的是门口站
我的这个Lenove本子上有一个“NOVO”键,原先一直不怎么用,后来发现,原来是Lenovo一个小系统,可以
我的这个Lenove本子上有一个“NOVO”键,原先一直不怎么用,后来发现,原来是Lenovo一个小系统,可以
实习日记 已经很晚了,不过还是很有必要抱着疲惫的身子记录下这一天的经历。今天的感觉只有一个字:
实习日记 已经很晚了,不过还是很有必要抱着疲惫的身子记录下这一天的经历。今天的感觉只有一个字:
元宵节日记 这几天颇不平静,工作和生活的烦恼一齐涌上心头。趁元宵佳节出游,放松心情、调整情绪。
Mar 6, 2011 从上家手中接过钥匙,这个53.23平米的小房子就正式属于我了。 它看起来是那么小那么破啊
《捉虫日记》 基本信息 原书名:A Bug Hunter’s Diary:A Guided Tour Through the Wilds of Softwa
其实这一章不是我自己调研的,而是别人的学习成果,通过别人,学习了一下十分简单的aop配置,这里是
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号