2017-10-11 61 views
-1

我正在構建一個下拉菜單,該菜單顯示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」

如果這還不夠,我可以提供相關文件以幫助解決問題。

感謝您花時間抽出寶貴時間來幫助我!

回答

0

當然可以,這裏是

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

如果你的類與資源相關的樣品(您使用的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!") %> 

請讓我知道,如果你有任何問題。

0

您可以撥打升序排列所有類別根據你的屬性名稱

@categories = Categories.all(:爲了=> 「名ASC」)

這裏 「名ASC」 名指的是類名稱

試試這在軌道控制檯..你可以看到該訂單

相關問題