【发布时间】:2012-02-09 09:31:08
【问题描述】:
我在使用范围内的 SQL 查询时遇到问题。我需要返回一组唯一的 Project.titles 及其随附的 id,以便在表单中使用。
我可以使用
获得不同的标题scope :unique_title, select("DISTINCT title")
但我没有得到结果选项中的值
= project_form.input :id, collection: current_user.projects.unique_title
结果:
<select>
<option value>Item 1</option>
<option value>Item 2</option>
<option value>Item 3</option>
</select>
所以,将 id 添加到我的范围:
scope :unique_title, select("DISTINCT title").select("id")
结果为我提供了值,但现在我的 DISTINCT 选择已失效:
<select>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
<option value="4">Item 2</option>
<option value="5">Item 2</option>
<option value="6">Item 2</option>
</select>
【问题讨论】:
-
你想要不同分组标题的 id 吗?只有第一个匹配的 id 还是具有该标题的所有 id?
-
我希望与每个标题相关的 id 在 html 值中,例如
<option value="1">Item 1</option>。这样,一旦提交表单,我就可以在控制器中找到选定的选项。 -
所以最好的方法是使用 PARTITION BY
标签: ruby-on-rails ruby-on-rails-3 rails-activerecord rails-postgresql