ruby on rails 新建模型,模型间设置关联,表单验证

本文介绍了在Ruby on Rails中如何新建模型并设置字段,如User模型的name和email。Rails会自动处理主键id。通过`rails db:migrate`进行数据库迁移,并涉及了模型间的关联和表单验证的概念,以及使用Rails控制台操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值