我有一个遗留数据库,其中有一堆像白痴一样命名的列,比如:
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
在我的类定义中,我得到了一个“未定义的局部变量或方法 `attributes`”错误。我还尝试了覆盖这些方法:
method_missing respond_to?
但我也在那条路线上遇到了错误。
所以我的问题(其实是多个问题)是:
- Is what I m trying to do even possible?
- If so, what s the best way to do it (iterative aliasing or overwriting method missing)?
- If it s not too much trouble, a very brief code sample of how to do #2 would be awesome.
提前感谢此贴收到的任何答复。