我在用户模型上有以下别名:
alias_attribute :firstName, :first_name
alias_attribute :lastName, :last_name
如何将带别名的哈希作为键,例如:
user.alias_attributes
{
firstName: "Joe",
lastName: "Smith"
}
答案 0 :(得分:0)
如果您查看ActiveModel::AttributeMethods
source(alias_attribute
来自哪里),您会看到:
included do
class_attribute :attribute_aliases, :attribute_method_matchers, instance_writer: false
self.attribute_aliases = {}
#...
end
然后later:
def alias_attribute(new_name, old_name)
self.attribute_aliases = attribute_aliases.merge(new_name.to_s => old_name.to_s)
#...
end
因此您可以查看User.attribute_aliases
以获取您之后的哈希值。
当然,这不是文档化界面的一部分,因此它可能会也可能不会继续工作;如果您在应用程序中使用此功能,那么您应该在测试套件中包含一些测试,以便您至少知道它是否发生了变化。