我有一个名为“DXFTACCTS”的旧遗留表,我创建了Rails模型“Account”。
class Account < ActiveRecord::Base
set_table_name "DXFTACCTS"
end
问题是DXFTACCTS有像“XORFNAME”这样的字段,我希望它在模型中是“first_name”,依此类推。如何将特定表列“映射”到模型属性?
谢谢!
答案 0 :(得分:10)
您可以使用方法alias_attribute,如下所示:
class Account < ActiveRecord::Base
set_table_name "DXFTACCTS"
alias_attribute :first_name, :XORFNAME
end
alias_attribute创建方法first_name,first_name =和first_name?它将映射到表中的XORFNAME列。但是,您将无法在常规列等条件下使用它。例如:
Account.all(:conditions => { :first_name => "Foo" })
那会失败......
答案 1 :(得分:2)
我认为像getter和setter方法的定义应该可以解决这个问题:
class Account < ActiveRecord::Base
...
def firts_name
self[:XORFNAME]
end
def first_name= value
self[:XORFNAME] = value
end
...
end