ActiveRecord :: Associations :: CollectionProxy上的Rails方法

时间:2014-01-23 15:13:50

标签: ruby-on-rails activerecord

我有一个困境。我的控制器中有一个巨大的功能,可以将不同类型数据的负载标准化为一个视图列表。所以我现在有这种处理方式:

customer.notes.each do |note|
    to_push = {
      id: note.id,
      title: 'Contact Note',
      type: 'note',
      description: note.notes,
      user: note.user,
      date: note.date,
      action: nil,
      extras: note.customer_interests,
      closed: false,
      colour: '#9b59b6'
    }

    history.push to_push
  end

我想将它从控制器移到模型中,但我不太清楚如何。理想情况下我想要一个类似customer.notes.format_for_timeline的方法,但我无法弄清楚如何在类中的自我方法中迭代结果。

由于

1 个答案:

答案 0 :(得分:1)

我发现了怎么样。使用self方法,然后all

def self.format
  all.each do |item|
    # Manipulate items here
  end
end

然而,我最终得到了这样的方法:

def format
  {
    id: id,
    note: 'Contact Note',
    # Etc
  }
end

然后刚刚使用:

customer.notes.map {|i| i.format }