ruby-on-rails - 类似查找查询的 DRY 实例变量

标签 ruby-on-rails ruby ruby-on-rails-3 dry

也许这个问题可能已经有了答案,但我不确定要搜索什么。

我有一个包含服装品牌 A 到 Z 列表的页面,其中有一个 each block 来遍历所有这些品牌。我想按字母拆分这个列表,并在顶部有一个 A 到 Z 行的链接,每个字母在页面上跳转到列表中的字母。但是,为了做到这一点,我只能考虑为每个字母制作一个循环,其中 <A NAME="A">等等,以及每个实例变量。

我的问题是,如何避免在我的 Controller 中有 26 个不同的实例变量?

@Abrands = Product.where('brand LIKE ?', "A%")
@Bbrands = Product.where('brand LIKE ?', "B%")
@Cbrands = Product.where('brand LIKE ?', "C%")
etc.

这显然不是很 DRY,有没有更好的方法可以做到这一点?我仍然在寻找我的脚,任何帮助将不胜感激!

最佳答案

这样的事情对你有用吗?

@products = Product.all.group_by{|product| product.brand.slice(0,1)}

这是一个很好的单行代码,只会发出 1 个查询。它将产生类似于其他用户建议的散列。

关于ruby-on-rails - 类似查找查询的 DRY 实例变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7388738/

相关文章:

ruby-on-rails - ActiveRecord::PendingMigrationError?

ruby-on-rails - Rails 4.0.0 - 获得 "no implicit conversion of nil into String"

ruby-on-rails - attr_encrypted 不保存到数据库

ruby-on-rails - 解析 JSON 数据时遇到问题

ruby-on-rails - 渲染布局而不在 Rails 中加载其内部布局

ruby-on-rails - Formtastic 选择列表

ruby - Apache Camel 和 ruby

ruby-on-rails - 将 Heroku 环境变量传输到 Docker 实例

javascript - 加载页面后自动加载javascript函数

ruby-on-rails-3 - 如何使用 Rails 3 中的 Paperclip 和 s3 存储解决 "Missing Credentials"