以升序显示

问题描述:

我正在构建一个下拉菜单,该菜单显示Ruby on Rails中的类别,并希望按字母顺序(A ... Z)显示下拉菜单。以升序显示

问题: “我可以通过编辑控制器或视图中的方法来按字母顺序排列下拉菜单吗?”

由于它们不在数据库中按字母顺序接种,我想知道是否有办法有,目前在默认情况下是这样的数据显示数据:

| DROPDOWN |
| _烹饪____ |
| _Zoology ____ |
| _历史_____ |
| _畜牧___ |
| _射箭____ |

进入:

| DROPDOWN |
| _射箭____ |
| _烹饪____ |
| _畜牧___ |
| _历史_____ |
| _Zoology ____ |

当前,类别的值为id,name,created_at和updated_at

这里是数据库的ActiveRecord的关系的一个片段:

的ActiveRecord ::关系
分类标识:1,名称: “技术”,created_at: “二零一七年十月十日21时48分59秒”, updated_at:“2017-10-10 21:48:59”
分类标识:2,名称:“恐怖/悬疑”,created_at:“2017-10-10 21:50:38”,updated_at:“2017-10 -11 00:06:38“
类别ID:3,名称:”幻想“,created_at:”2017-10-10 21:50:43“,updated_at:”2017-10-10 21:50:43“
类别id:4,name:“Historical Fiction”,created_at:“2017-10-10 21:50:51”,updated_at:“2017-10-10 21:50:51”

如果这还不够,我可以提供相关文件以帮助解决问题。

感谢您花时间抽出宝贵时间来帮助我!

当然可以,这里是

<%= f.select :category_id, Category.uniq.pluck(:name, :id).sort, { include_blank: true }, { class: 'your class name' } %> 

如果你的类与资源相关的样品(您使用的form_for以f作为表单变量考虑),你试图显示在表单中的所有类别需要保存。我假设你有一篇文章之类的资源,并且希望在保存到数据库中的同时向文章中添加一个类别。

def new 
    @article = Article.new 
    @temp = Category.alphabetically 
    @categories = @temp.all.map{|c| [ c.name, c.id ] } 
    end 

在您的类模型

类别。RB

class Category < ApplicationRecord 
    scope :alphabetically, -> { order(name: :asc) } 
end 

在视图

_form.html.erb

<%= select_tag(:category_id, options_for_select(@categories), class: "form-control", :prompt => "Select one!") %> 

请让我知道,如果你有任何问题。

您可以拨打升序排列所有类别根据你的属性名称

@categories = Categories.all(:为了=> “名ASC”)

这里 “名ASC” 名指的是类名称

试试这在轨道控制台..你可以看到该订单