ruby-on-rails 如何访问ActiveRecord类中的别名属性?我还缺少更好的方法吗?

yqlxgs2m  于 2023-04-08  发布在  Ruby
关注(0)|答案(2)|浏览(102)

我正在与一个较旧的数据库交互,并使用alias_attribute将旧的列名Map到新的列名。
它工作得很好,但是我也想得到一个记录的所有属性的列表。使用record.attributes只给了我原始属性,而不是别名。有没有一种方法可以通过类似的方法列出所有这些属性?
也许我最好只做一个查找哈希?
先谢谢你了!

m1m5dgzv

m1m5dgzv1#

恐怕不可能得到别名属性的列表。alias_attribute方法除了创建几个getter/setter之外什么也不做。这个方法没有以任何方式“标记”这些方法。

iyzzxitl

iyzzxitl2#

从Rails5.0.7.2或更早版本开始:

ModelClass.alias_attribute :new_name, :old_name

#=> [a heap of ActiveModel::AttributeMethods::ClassMethods::AttributeMethodMatchers]

ModelClass.attribute_aliases

#=> {"new_name"=>"old_name"}

ModelClass.attribute_alias(:new_name)

#=> "old_name"

相关问题