Ruby on rails Rails在模型中循环记录
我在PostgeSQL数据库中定义了两个hstore列(Ruby on rails Rails在模型中循环记录,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我在PostgeSQL数据库中定义了两个hstore列(参数和键)。我想获得一个键列表,并在模型中为其定义了一个方法: 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 << []
参数
和键
)。我想获得一个键列表,并在模型中为其定义了一个方法:
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
def self.keys\u列表
日志=自我
list=Log.column_name-%w{id parameters extras}
日志。每个do |日志|
log.parameters.present?listActiveRecord::Base
没有定义一个。每个方法。您需要添加对all
的调用,如下所示:
all.each do |log|
#...
end
这应该使Log.keys\u list
和Log.where(name:“Peeyush”).keys\u list
都能工作。ActiveRecord::Base
不定义。每个方法。您需要添加对all
的调用,如下所示:
all.each do |log|
#...
end
这将使Log.keys\u list
和Log.where(name:“Peeyush”).keys\u list
工作。logs=self;日志。每个。。。在本例中,self将是您所在的类,因此日志已设置为一个类,也许您想将其设置为其他类型?假设我有一些日志<代码>日志=日志。其中(名称:“Peeyush”)
。现在,我想得到它的钥匙清单。所以,我想在它上面打一个类似于logs.keys_list的调用。logs.map{a{a}a.keys_list}。展平我想可以做到。。当然,这要求Log为每个单独的日志定义一个keys_list函数,logs=self
位非常混乱。只要使用self
。我想你想要Matijs的答案所建议的。不过,我想提出一个离题的建议。。您可以编写log.parameters.present?列表日志=self;日志。每个。。。在本例中,self将是您所在的类,因此日志已设置为一个类,也许您想将其设置为其他类型?假设我有一些日志<代码>日志=日志。其中(名称:“Peeyush”)
。现在,我想得到它的钥匙清单。所以,我想在它上面打一个类似于logs.keys_list的调用。logs.map{a{a}a.keys_list}。展平我想可以做到。。当然,这要求Log为每个单独的日志定义一个keys_list函数,logs=self
位非常混乱。只要使用self
。我想你想要Matijs的答案所建议的。不过,我想提出一个离题的建议。。您可以编写log.parameters.present?列表