Rails循环遍历模型中的记录

时间:2014-06-20 12:11:34

标签: ruby-on-rails ruby ruby-on-rails-4

我的PostgeSQL数据库中定义了2个hstore列(parameterskeys)。我想得到一个键列表,并在模型中为它​​定义了一个方法:

def self.keys_list
  logs = self
  list = Log.column_names - %w{id parameters extras}
  logs.each do |log|
    log.parameters.present? ? list << log.parameters.keys : list << []
    log.extras.present? ? list << log.extras.keys : list << []
  end
  list = list.flatten.uniq
  return list
end

但是当我尝试使用它时,我收到以下错误:

NoMethodError: undefined method `each' for #<Class:0x00000004b630b0>

任何人都可以建议错误的位置或其他方式吗?

1 个答案:

答案 0 :(得分:4)

ActiveRecord::Base未定义.each方法。您需要添加对all的调用,如下所示:

all.each do |log|
  #...
end

这应该使Log.keys_listLog.where(name: "Peeyush").keys_list都有效。