Rails模型,用于适应包含多个值的传统非规范化表

时间:2012-12-09 00:02:37

标签: ruby-on-rails activerecord denormalized

我有一个类似于

的遗留表
item-detail-table
  some-key,
  item-1,
  description-1,
  item-2,
  description-2,
  item-3,
  description-3,
  item-4,
  description-4,
  item-5,
  description-5,
  other-fielda,
  other-fieldb,
  etc.

我想让我的Rails模型返回五个单独的对象,以响应find_by_some_key检索到的每个匹配记录,每个匹配记录都具有逻辑结构:

normalized-item-detail
  some-key,
  item,
  description,
  other-fielda,
  other-fieldb,
  etc.

我之前没有在Rails中做过这样的事情,并且想知道做这样的事情的最佳/最惯用的方法。

它将是一个只读模型,因此我可以避免需要能够更新结果对象的所有复杂性。

我是否应该有一个表示单个子条目的中间模型,并且只是让这个模型返回那些嘎嘎我想要的数组?

谢谢!

-G。

1 个答案:

答案 0 :(得分:1)

你可以创建一个TableItem-Model,它有一个方法可以返回规范化的类......

像:

def TableItem < ActiveRecord::Base
  class NormalizedItem
     #attributes
  end

  def getNormalizedItems
     ret = []
     3.times do |u|
       ....
       ret << NormalizedItem.new(params)
     end
     return ret
  end
end