Rails模型类型列表

130

谁有完整的模型类型列表可以在生成模型脚手架时指定?

例如:

foo:string 
bar:text 
baz:boolean

这些类型在默认UI元素方面映射到什么?文本字段、文本区域、单选按钮、复选框等等...


2个回答

274

这些属性都是SQL类型,因此支持以下内容:

  • :binary:二进制类型
  • :boolean:布尔类型
  • :date:日期类型
  • :datetime:日期时间类型
  • :decimal:十进制类型
  • :float:浮点数类型
  • :integer:整型
  • :primary_key:主键类型
  • :string:字符串类型
  • :text:文本类型
  • :time:时间类型
  • :timestamp:时间戳类型

这些属性在Active Record APIcolumn中有详细说明。


3
你的链接出了点问题(我想这是正确的说法)。如果你能提供一些可靠的文档链接,那就太好了。谢谢。 - user1228
3
我认为这可能是一个更准确的链接,现在是http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/TableDefinition.html#method-i-column。 - Randy Burgess
1
:references 在这里的作用是什么?它是特定于数据库的吗? - Erhannis
1
我希望为将来阅读此内容的人添加一些信息,即在创建迁移等时,使用“car:references”非常方便,可以创建一个“car_id”外键。 - BenKoshy
1
现在它在这里:http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_column - 我更新了答案。 - John Bachir
文档中的 :digest 类型在哪里?它在 schema.rb 级别的 password_digest 中被看到。你不需要它来使用 Devise 或运行 rails g scaffold User name:string password:digest 吗? - Ridhwaan Shakeel

48
你可以在模型脚手架中使用以下基本字段类型,所有这些类型都受到ActiveRecord支持的数据库的支持,无需任何额外的gem(MySQL,PostgreSQL,SQLite):
  • :binary(二进制)
  • :boolean(布尔)
  • :date(日期)
  • :datetime(日期时间)
  • :decimal(十进制数)
  • :float(浮点数)
  • :integer(整数)
  • :primary_key(主键)
  • :string(字符串)
  • :text(长文本)
  • :time(时间)
  • :timestamp(时间戳)
在生成器中,你还可以使用:references字段类型声明外部引用,这将在新模型中添加一个belongs_to引用。
如果你使用Rails 4和PostgreSQL,则可以利用以下功能:
  • :hstore
  • :array
  • :cidr_address
  • :ip_address
  • :mac_address
对于UI映射(模型脚手架数据类型-> HTML),下图显示了所有基本字段类型:

Rails data types, scaffolding HTML mapping


Rails 5 在 PostgreSQL 上:您可以使用 add_column :table_name, :field_name, :inet 创建一个用于存储 IP 地址的列。请参见例如 http://www.postgresqltutorial.com/postgresql-data-types/。 - MSC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接