【发布时间】:2009-02-04 01:24:28
【问题描述】:
我有一个遗留数据库,其中包含一堆白痴命名的列,例如:
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
在我的类定义中,出现“未定义的局部变量或方法‘属性’”错误。我也尝试过覆盖这些方法:
method_missing respond_to?
但我也不断收到该路线的错误。
所以我的问题(实际上是问题)是/是:
- 我正在尝试做的事情可能吗?
- 如果是这样,最好的方法是什么(缺少迭代别名或覆盖方法)?
- 如果不是太麻烦的话,一个非常简短的代码示例来说明如何执行 #2 会很棒。
提前感谢本文收到的任何答复。
【问题讨论】:
-
你能发布一个完整的例子吗?这应该很容易上手
标签: ruby-on-rails ruby activerecord attributes