zoukankan      html  css  js  c++  java
  • Ruby on Rails 一个小app

    1.home page

       $rails generate controller StaticPages home help

    2. test

       rails test

    3. add CSS

       gem bootstrap-sass  in gemfile

       或者直接在assert static.scss改

      $ touch app/assets/stylesheets/custom.scss 

      导入 Bootstrap 中的 CSS app/assets/stylesheets/custom.scss

      @import "bootstrap-sprockets";

          @import "bootstrap"; 

    4.在layouts中加header,foot

    5.add path in routes

       get '/contact', to: 'static_pages#contact'

    这样就可以直接用  <%= link_to "Contact", contact_path %>

    6.login page  controller-model -view

       rails generate controller Users new 

       rails generate model User name:string email:string 

     rails db:migrate  

      在sandbox中增加user

    rails console --sandbox

    user = User.new(name: "Mi", email: "mtl@example.com")
    user.save
    User.find(1)
    User.find_by(email:"mtl@example.com")
    >> user.email
        => "mhartl@example.net"
        >> user.email = "foo@bar.com"
        => "foo@bar.com"
        >> user.reload.email
        => "mhartl@example.net"

    app/models/user.rb

    class User < ApplicationRecord
    validates :name, presence: true, length: { maximum: 50 }
    VALID_EMAIL_REGEX = /A[w+-.]+@[a-zd-]+(.[a-zd-]+)*.[a-z]+z/i
    validates :email,presence: true,length:{maximum:255},
    format: { with: VALID_EMAIL_REGEX }
    uniqueness: { case_sensitive: false }
    end

    为 email 列建立索引要改变数据模型,实现电子邮件地址唯一性 

    rails generate migration add_index_to_users_email

    IN  db/migrate/[timestamp]_add_index_to_users_email.rb

    class AddIndexToUsersEmail < ActiveRecord::Migration[5.0]
    def change
    add_index :users, :email, unique: true
    end
    end

    $rails db:migrate 

    我们使用的安全密码机制基本上用一个 Rails 方法即可实现,这个方法是 has_secure_password。我们要在

    User MODEL中调用这个方法,如下所示:

    class User < ApplicationRecord .

          has_secure_password
    

    end 

    $ rails generate migration add_password_digest_to_users password_digest:string 

    $rails db:migrate 

    试试错误密码~~

    >> user.authenticate("not_the_right_password")
        false
        >> user.authenticate("foobaz")
        false
    ----------------user model finished ---------------
    ---------------- login ---------------


    显示用户的信息 

    def show
    @user = User.find(params[:id])
    end

    前面创建了一个略显简陋的用户资料页面,这一节要再添加一些内容:用户头像和侧边栏。首先,我们要在 用户资料页面添加一个全球通用识别头像,或者叫 Gravatar。7 这是一个免费服务,让用户上传图像,将其关 联到自己的电子邮件地址上。使用 Gravatar 可以简化在网站中添加用户头像的过程,开发者不必分心去处理 图像上传、剪裁和存储,只要使用用户的电子邮件地址构成头像的 URL 地址,用户的头像就能显示出来 

    app/views/users/show.html.erb

        <% provide(:title, @user.name) %>
        <h1>
    
          <%= gravatar_for @user %>
    
          <%= @user.name %>
        </h1>
    

    app/helpers/users_helper.rb

     module UsersHelper
    # 返回指定用户的 Gravatar def gravatar_for(user)
           gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
           gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}"
           image_tag(gravatar_url, alt: user.name, class: "gravatar") 
        end
    end
        








    
    
  • 相关阅读:
    web标准化布局
    最全前端资源汇集
    SVN使用教程
    FullPage.js中文帮助文档API
    如何选字体(font-family)
    网站禁止复制类型的属性
    Web前端学习方向
    div 命名规范! (野路子出来的好好看看)
    浏览器兼容处理
    JSONP 跨域问题
  • 原文地址:https://www.cnblogs.com/joannacode/p/6039303.html
Copyright © 2011-2022 走看看