sql - Rails 3 模型将某些列映射到不同的模型属性

标签 sql ruby ruby-on-rails-3 activerecord legacy

我有一个名为“DXFTACCTS”的旧遗留表,我创建了 Rails 模型“Account”。

class Account < ActiveRecord::Base
  set_table_name "DXFTACCTS"
end

问题是 DXFTACCTS 有像“XORFNAME”这样的字段,我想在模型中将其设为“first_name”,等等。如何将特定表列“映射”到模型属性?

谢谢!

最佳答案

您可以像这样使用方法 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" })

那会失败...

关于sql - Rails 3 模型将某些列映射到不同的模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5073823/

相关文章:

php - 将插入的 id 用于另一个列值

ruby-on-rails - zipruby 还是 ruby​​zip?

ruby-on-rails - NameError 未初始化的常量 Model::Object

ruby-on-rails - 多小对于片段缓存来说太小了?

mysql - 如何在每笔交易的值(value)旁边显示所有交易的总金额

sql - 加快缓慢的SQL查询

ruby-on-rails - 如何使用 simple_format 或 View 在模型 after_create 回调中格式化 HTML

ruby - 如何在 routes.rb 中捕获参数错误

sql - 更新并返回一些行两次

javascript - 使用 Selenium 模拟将文件拖到上传元素上