zoukankan      html  css  js  c++  java
  • 07. rails 创建user模型

    rails帮助命令

    rails -h

    创建user模型

    命令行

    haima@haima-PC:/media/haima/34E401CC64DD0E28/site/go/src/ruby/circles$ rails g model user
    Running via Spring preloader in process 30704
          invoke  active_record
          create    db/migrate/20210110133050_create_users.rb
          create    app/models/user.rb
          invoke    test_unit
          create      test/models/user_test.rb
          create      test/fixtures/users.yml
    
    

    注意
    这里注册模型的名字是单数的形式(user),
    而数据库表的名字是会自动创建为复数所形式(users)

    编写users表迁移文件

    编写表迁移文件 20210110133050_create_users.rb

    class CreateUsers < ActiveRecord::Migration[6.1]
      def change
        create_table :users do |t|
          t.string :username
          t.string :password
          t.timestamps null:false
        end
      end
    end
    

    迁移 users

    执行 rails db:migrate 或者 rake db:migrate都可以,

    注意

    执行后会,会创建没有被迁移的表
    已经创建过的表不会再次被创建

    haima@haima-PC:/media/haima/34E401CC64DD0E28/site/go/src/ruby/circles$ rails db:migrate
    == 20210110133050 CreateUsers: migrating ======================================
    -- create_table(:users)
       -> 0.0757s
    == 20210110133050 CreateUsers: migrated (0.0758s) =============================
    

    从下图片看到已经创建成功了

    控制台操作user表

    增/删/改/查

    haima@haima-PC:/media/haima/34E401CC64DD0E28/site/go/src/ruby/circles$ rails console #进入控制台
    Running via Spring preloader in process 3956
    Loading development environment (Rails 6.1.1)
    3.0.0 :001 > User #选择user表
     => User (call 'User.connection' to establish a connection) 
    3.0.0 :002 > User.create username:'zhangshan',password:'123456' #创建一条记录
      TRANSACTION (0.5ms)  BEGIN
      User Create (0.4ms)  INSERT INTO `users` (`username`, `password`, `created_at`, `updated_at`) VALUES ('zhangshan', '123456', '2021-01-10 14:06:14.558342', '2021-01-10 14:06:14.558342')
      TRANSACTION (16.7ms)  COMMIT
     => #<User id: 1, username: "zhangshan", password: [FILTERED], created_at: "2021-01-10 14:06:14.558342000 +0000", updated_at: "2021-01-10 14:06:14.558342000 +0000"> 
    3.0.0 :003 > User.all.to_a #查询所以记录
      User Load (0.8ms)  SELECT `users`.* FROM `users`
     => [#<User id: 1, username: "zhangshan", password: [FILTERED], created_at: "2021-01-10 14:06:14.558342000 +0000", updated_at: "2021-01-10 14:06:14.558342000 +0000">] 
    3.0.0 :006 > user = User.first #查询第一条记录并赋值给user变量
      User Load (0.5ms)  SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC LIMIT 1
     => #<User id: 1, username: "zhangshan", password: [FILTERED], created_at: "2021-01-10 14:06:14.558342000 +0000", updated_at: "2021-01-10 14:06:14.558342000 +0000"> 
    3.0.0 :007 > user
     => #<User id: 1, username: "zhangshan", password: [FILTERED], created_at: "2021-01-10 14:06:14.558342000 +0000", updated_at: "2021-01-10 14:06:14.558342000 +0000"> 
    3.0.0 :008 > user.id #打印id
     => 1 
    3.0.0 :009 > user.username #打印username
     => "zhangshan" 
    3.0.0 :010 > user.username = 'lisi' #给username重新赋值
     => "lisi" 
    3.0.0 :011 > user.save #修改user.id = 1的这条数据的`username` = 'lisi'
      TRANSACTION (0.3ms)  BEGIN
      User Update (2.9ms)  UPDATE `users` SET `users`.`username` = 'lisi', `users`.`updated_at` = '2021-01-10 14:10:54.782612' WHERE `users`.`id` = 1
      TRANSACTION (860.2ms)  COMMIT
     => true 
    3.0.0 :013 > user.destroy #删除user.id = 1 的记录
      TRANSACTION (0.3ms)  BEGIN
      User Destroy (0.4ms)  DELETE FROM `users` WHERE `users`.`id` = 1
      TRANSACTION (17.7ms)  COMMIT
     => #<User id: 1, username: "lisi", password: [FILTERED], created_at: "2021-01-10 14:06:14.558342000 +0000", updated_at: "2021-01-10 14:10:54.782612000 +0000"> 
    
    3.0.0 :017 > User.create username:'zhangshan',password:'123456' #创建
      TRANSACTION (0.2ms)  BEGIN
      User Create (0.4ms)  INSERT INTO `users` (`username`, `password`, `created_at`, `updated_at`) VALUES ('zhangshan', '123456', '2021-01-10 14:20:48.808927', '2021-01-10 14:20:48.808927')
      TRANSACTION (285.9ms)  COMMIT
     => #<User id: 2, username: "zhangshan", password: [FILTERED], created_at: "2021-01-10 14:20:48.808927000 +0000", updated_at: "2021-01-10 14:20:48.808927000 +0000"> 
    3.0.0 :018 > User.find(2) #查找id=2的数据
      User Load (0.5ms)  SELECT `users`.* FROM `users` WHERE `users`.`id` = 2 LIMIT 1
    
    
  • 相关阅读:
    [RxJS] ReplaySubject
    [React Fundamentals] Composable Components
    [Webpack] Use the Webpack Dashboard to Monitor Webpack Operations
    [RxJS] AsyncSubject
    [React Fundamentals] Component Lifecycle
    [React Fundamentals] Component Lifecycle
    [React Fundamentals] Component Lifecycle
    [RxJS] Subject basic
    [React Fundamentals] Using Refs to Access Components
    文档管理系统二——文档扫描与图片编辑
  • 原文地址:https://www.cnblogs.com/haima/p/14259687.html
Copyright © 2011-2022 走看看