Ruby on rails 按升序显示类别
我正在构建一个下拉菜单,在RubyonRails中显示类别,并希望按字母顺序(a…Z)显示下拉菜单 问题: “我可以通过编辑控制器或视图中的方法按字母顺序排列下拉菜单吗?” 由于它们在数据库中不是按字母顺序排列的,我想知道是否有一种方法可以让数据显示当前默认情况下的数据:Ruby on rails 按升序显示类别,ruby-on-rails,ruby,activerecord,controller,Ruby On Rails,Ruby,Activerecord,Controller,我正在构建一个下拉菜单,在RubyonRails中显示类别,并希望按字母顺序(a…Z)显示下拉菜单 问题: “我可以通过编辑控制器或视图中的方法按字母顺序排列下拉菜单吗?” 由于它们在数据库中不是按字母顺序排列的,我想知道是否有一种方法可以让数据显示当前默认情况下的数据: |下拉菜单| |_烹饪 |_动物学 |_历史 |_园艺 |_射箭 进入: |下拉菜单| |_射箭 |_烹饪 |_园艺 |_历史 |_动物学 目前,Categories的值为id、name、created_at和upda
|下拉菜单|
|_烹饪 |_动物学 |_历史 |_园艺 |_射箭
进入:
|下拉菜单|
|_射箭 |_烹饪 |_园艺 |_历史 |_动物学
目前,Categories的值为id、name、created_at和updated_at 以下是数据库ActiveRecord关系的一个片段: ActiveRecord::关系
类别id:1,名称:“技术”,创建于:“2017-10-10 21:48:59”,更新于:“2017-10-10 21:48:59”
类别id:2,名称:“恐怖/神秘”,创建于:“2017-10-10 21:50:38”,更新于:“2017-10-11 00:06:38”
类别id:3,名称:“幻想”,创建于:“2017-10-10 21:50:43”,更新于:“2017-10-10 21:50:43”
类别id:4,名称:“历史小说”,创建于:“2017-10-10 21:50:51”,更新于:“2017-10-10 21:50:51”
如果这还不够,我可以提供相关文件来帮助阐明这个问题
谢谢你抽出时间来帮助我 是的,您可以,这是示例(假设您使用form_for,f作为形式变量)
如果您的类别与资源关联,并且您正试图以需要保存的表单显示所有类别。我假设您有类似于文章的资源,并且希望在保存到数据库时向文章添加类别
def new
@article = Article.new
@temp = Category.alphabetically
@categories = @temp.all.map{|c| [ c.name, c.id ] }
end
在您的类别模型中
category.rb
class Category < ApplicationRecord
scope :alphabetically, -> { order(name: :asc) }
end
类别{order(name::asc)}
结束
在视图中
_form.html.erb
<%= select_tag(:category_id, options_for_select(@categories), class: "form-control", :prompt => "Select one!") %>
“选择一个!”)%
如果您有任何问题,请告诉我。您可以根据属性名称按升序调用所有类别 @类别=类别。全部(:订单=>“名称ASC”) 此处“名称Asc”名称指类别名称 在rails控制台中尝试此操作。您可以看到该顺序
<%= select_tag(:category_id, options_for_select(@categories), class: "form-control", :prompt => "Select one!") %>