我的PostgeSQL数据库中定义了2个hstore列(parameters
和keys
)。我想得到一个键列表,并在模型中为它定义了一个方法:
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>
任何人都可以建议错误的位置或其他方式吗?
答案 0 :(得分:4)
ActiveRecord::Base
未定义.each
方法。您需要添加对all
的调用,如下所示:
all.each do |log|
#...
end
这应该使Log.keys_list
和Log.where(name: "Peeyush").keys_list
都有效。