gpt4 book ai didi

ruby-on-rails - Ruby on Rails Active Record 属性自省(introspection)

转载 作者:行者123 更新时间:2023-12-04 03:34:44 24 4
gpt4 key购买 nike

在 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

谢谢!

最佳答案

即使没有模型实例,您也可以使用 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

关于ruby-on-rails - Ruby on Rails Active Record 属性自省(introspection),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4142386/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com