rails 新建的模型,还会为它创建 Web 界面。
这一个过程就是,生成数据表,建立相关的 MVC。类似,PHP框架 YII2 的 GII ,生成代码的功能。
建立一个 user 模型,有 name , email 字段
注意,没必要指定 id 字段,Rails 会自动创建并将其设为表的主键(primary key)。
下面的命令需要在项目文件夹下运行
rails generate scaffold User name:string email:string
invoke active_record
create db/migrate/20160515001017_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
invoke resource_route
route resources :users
invoke scaffold_controller
create app/controllers/users_controller.rb
invoke erb
create app/views/users
create app/views/users/index.html.erb
create app/views/users/edit.html.erb
create app/views/users/show.html.erb
create app/views/users/new.html.erb
create app/views/users/_form.html.erb
invoke test_unit
create test/controllers/users_controller_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
invoke jbuilder
create app/views/users/index.json.jbuilder
create app/views/users/show.json.jbuilder
invoke assets
invoke coffee
create app/assets/javascripts/users.coffee
invoke scss
create app/assets/stylesheets/users.scss
invoke scss
create app/assets/stylesheets/scaffolds.scss
接下来我们要用 rails db:migrate 命令迁移(migrate)数据库
rails db:migrate
== CreateUsers: migrating ====================================================
-- create_table(:users)
-> 0.0017s
== CreateUsers: migrated (0.0018s) ===========================================
// 上述命令的作用是使用新的 User 数据模型更新数据库。
// 顺便说一下,在 Rails 5 之前的版本中,db:migrate 命令使用 rake 执行,而不是 rails。
关于表单验证
# 限制长度,最大20;字段必填
class User< ApplicationRecord
validates :name, length: { maximum: 20 }, presence: true
end
关于模型关联
# 一 对 多 ; 一个用户可以有多个博文
class User < ApplicationRecord
has_many :microposts
end
# 一个博文 对应 一个用户
class Micropost < ApplicationRecord
belongs_to :user
end
rails 控制台
# 控制台是与 Rails 应用交互常用的工具。在命令行中执行 rails console 命令,启动控制台。
rails console