在Active Record中获取属性类型的最佳方法是什么(甚至在分配属性之前)?例如(这不起作用,只是目标):
User.new
User.inspect(:id) # :integer
User.inspect(:name) # :string
User.inspect(:password) # :string
User.inspect(:updated_at) # :datetime
User.inspect(:created_at) # :datetime
谢谢!
答案 0 :(得分:13)
即使没有模型实例,您也可以使用Model.columns_hash
,它是在属性名称上键入的模型上的列的散列,例如。
User.columns_hash['name'].type # => :string
User.columns_hash['id'].type # => :integer
User.columns_hash['created_at'].type # => :datetime
<强>更新强>
由于Kevin已对自己进行了评论,如果您有模型实例(例如@user
),则可以使用column_for_attribute
方法,例如。
@user.column_for_attribute(:name) # => :string
从Rails API docs你可以看到这只是一个在实例类上调用columns_hash
的包装器:
def column_for_attribute(name)
self.class.columns_hash[name.to_s]
end
答案 1 :(得分:0)
$(".commented-container").uncomment();