生成模型时指定限制的语法

时间:2012-06-03 20:55:22

标签: ruby-on-rails ruby-on-rails-3 activerecord

在rails中,我们可以像这样生成模型

rails generate model post title:string body:text published:boolean

该命令根据rails guide

具有以下语法
$ rails generate model
Usage: rails generate model NAME [field:type field:type] [options]

我想知道是否可以为每个字段指定限制/长度作为[options]的一部分?此外,[options]参数的用途是什么?

4 个答案:

答案 0 :(得分:38)

您可以使用大括号提供限制:

rails g model Session session_id:string{40} user_agent:string{200}

答案 1 :(得分:1)

在rails 5中,我必须使用rails g model User name:"string{16}"

答案 2 :(得分:1)

您需要在花括号中指定大小,这将转换为限制

rails generate model MyModel some_id:integer{20} some_name:string{255}
some_text:text some_int:integer{1} some_deci:decimal{10,2}

您还可以具有其他数据类型,例如布尔值,日期,时间, 日期时间,浮点数,二进制等。

选项类似于“是否还需要运行迁移”之类的东西。

答案 3 :(得分:0)

我知道这是旧的,但语法会变成varchar()或char()。是否存在模型生成的语法的不同列表,该列表告诉某人如何定义从一个或多个列上的索引到限制为null / not null等的所有内容。 我试图将此添加为对上一个答案的评论,但无法