解释查询的输出

时间:2015-07-23 13:07:16

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

我在这个小问题上被困了几个小时,如果有人能提供帮助,我会感激不尽。

我的最终目标是获取所有独特的状态,并将其中的每个状态与其页面相关联,该页面将显示此州所属的所有社区。

我试过摆弄2个替代方案,alt.1给了我一个数组,这使得它很容易融入.each循环但没有id来查找社区。 alt.2给了我id&状态,但输出的格式是我无法识别的。

# model
class Community...
has_one :location

class Location...
belongs_to :community

# view
# alt.1
Location.pluck("DISTINCT state")

# alt.2
Location.select('distinct on(state) id, state')
=> [#<Location id: 2, state: "Oakland">, #<Location id:4, state: "South Carolina">]

对这两种或替代替代品的解决方案表示赞赏。

1 个答案:

答案 0 :(得分:0)

有几件事:

1)正如Athar所说,第二个是正确的,它们是主动记录对象。更积极的记录方式是Location.select('state').uniq.map(&:state),它将返回一组状态。

2)阅读http://guides.rubyonrails.org/active_record_querying.html - 我认为select不符合你的想法。

3)将来使用状态表可能会很有用,您显然不需要使用迁移中的初始值填充状态表,而只需将其作为字符串列放在位置上。然后,您可以强制某个位置引用现有状态。