我试图通过连接获得简单的结果哈希值。我得到了正确的输出,但我讨厌我的实现。
这是我目前的尝试:
class Position < ActiveRecord::Base
has_many :position_synonyms
end
class PositionSynonym < ActiveRecord::Base
belongs_to :position
end
这是我目前的尝试。我确信这是一种更优雅的方式:
def flat
result = []
Position.all.includes(:position_synonyms).each do |p|
result.push({id:p.id, name: p.name})
if p.position_synonyms
p.position_synonyms.each do |s|
result.push({id:p.id, name:s.name})
end
end
end
result
end
答案 0 :(得分:2)
我想你可以试试:
def flat
Position.pluck(:id, :name).map{|p| {id: p[0], name: p[1]} } +
PositionSynonyms.pluck(:position_id, :name).map{|s| {id: s[0], name: s[1]} }
end
或表现可能更好:
{{1}}