什么是让(属性已被分配,甚至之前)的活动记录的属性的类型的最佳方式?例如(这不起作用,只是目标):
User.new
User.inspect(:id) # :integer
User.inspect(:name) # :string
User.inspect(:password) # :string
User.inspect(:updated_at) # :datetime
User.inspect(:created_at) # :datetime
Run Code Online (Sandbox Code Playgroud)
谢谢!
mik*_*kej 13
即使没有模型实例,您也可以使用Model.columns_hash,这是在属性名称上键入的模型上的列的哈希,例如
User.columns_hash['name'].type # => :string
User.columns_hash['id'].type # => :integer
User.columns_hash['created_at'].type # => :datetime
Run Code Online (Sandbox Code Playgroud)
更新
正如凯文已经评论过自己,如果你有一个模型实例(例如@user),那么column_for_attribute可以使用该方法,例如
@user.column_for_attribute(:name) # => :string
Run Code Online (Sandbox Code Playgroud)
从Rails API文档中,您可以看到这只是一个调用columns_hash实例类的包装器:
def column_for_attribute(name)
self.class.columns_hash[name.to_s]
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3726 次 |
| 最近记录: |