我有一个遗留数据库,其中包含一堆白痴命名的列,例如:
some_field_c some_other_field_c a_third_field_c
我非常想创建一个 Rails ActiveRecord 子类,它会自动将这些属性别名为其名称减去下划线和“c”。但是,当我尝试:
attributes.each_key do | key |
name = key
alias_attribute key.to_sym, key[0, (key.length -2)].to_sym if key =~ /_c$/
end
在我的类定义中,出现“未定义的局部变量或方法‘属性’”错误。我也尝试过覆盖这些方法:
方法缺失 回应?
但我也一直在这条路线上遇到错误。
所以我的问题(实际上是问题)是/是:
- 我想要做的甚至可能吗?
- 如果是这样,最好的方法是什么(迭代别名或覆盖方法缺失)?
- 如果不是太麻烦,那么如何做#2 的非常简短的代码示例会很棒。
提前感谢这篇文章收到的任何答案。