Pee*_*ush 1 ruby ruby-on-rails ruby-on-rails-4
我在 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
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用它时,出现以下错误:
NoMethodError: undefined method `each' for #<Class:0x00000004b630b0>
Run Code Online (Sandbox Code Playgroud)
任何人都可以建议错误在哪里或者如何以其他方式做到这一点?
ActiveRecord::Base没有定义.each方法。您需要添加对 的调用all,如下所示:
all.each do |log|
#...
end
Run Code Online (Sandbox Code Playgroud)
这应该使两者Log.keys_list都Log.where(name: "Peeyush").keys_list起作用。
| 归档时间: |
|
| 查看次数: |
3523 次 |
| 最近记录: |