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