【问题标题】:Interpreting output from query解释查询的输出
【发布时间】:2015-07-23 13:07:16
【问题描述】:

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

我的最终目标是获取所有独特的州并将每个州与其页面链接,该页面将显示该州所属的所有社区。​​p>

我试过摆弄 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">]

非常感谢这两种或替代方案的解决方案。

【问题讨论】:

  • alt2 是一个数组,其中每个元素都是一个活动记录
  • 我猜第二个 alt2 是完美的。您可以遍历并从每个中获取 id 和 state。但第二个只会给你一个状态ID。不是全部。
  • 谢谢,解决了!无法识别 ActiveRecord 元素,因为我从未见过它的“原始”形式。

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


【解决方案1】:

有几点:

1)正如Athar所说,第二个是正确的,它们是activerecord对象。执行此操作的更 activerecord 方法是 Location.select('state').uniq.map(&amp;:state),它将返回一个状态数组。

2) 阅读http://guides.rubyonrails.org/active_record_querying.html - 我认为select 不会像您认为的那样做。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-06
    • 2014-04-23
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多