ruby-on-rails – Rails范围:选择带有值的不同标题

ruby-on-rails – Rails范围:选择带有值的不同标题,第1张

概述我在范围内遇到SQL查询问题.我需要返回一个独特的Project.titles及其附带的id的集合,以便在表单中使用. 我可以使用不同的标题 scope :unique_title, select("DISTINCT title") 但是我没有在结果选项中获得价值 = project_form.input:id,collection:current_user.projects.unique_tit 我在范围内遇到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>
解决方法 我认为你将无法选择另一个领域以及保持其独特性的独特选择.

我想你可能正在寻找可以在Rails中使用的GROUP BY:

scope :unique_Title,select("ID,Title").group("Title")

但是,这将仅选择具有相同标题的组中的第一个.如果您想要所有记录但需要根据标题对它们进行分组,则需要获取所有记录,然后从Ruby中对它们进行分组.

scope :Titles,Title")

那你在哪里使用范围,你sh:

Model.Titles.all.group_by(&:Title).each do |distinct_Title,records|  # do something with the distinct Title and records having that distinct Titleend
总结

以上是内存溢出为你收集整理的ruby-on-rails – Rails范围:选择带有值的不同标题全部内容,希望文章能够帮你解决ruby-on-rails – Rails范围:选择带有值的不同标题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1222037.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存