2017-10-11 5 views
-1

Ich erstelle ein Dropdown-Menü, das Kategorien in Ruby on Rails anzeigt und das Dropdown in alphabetischer Reihenfolge (A ... Z) anzeigen möchte.Anzeigen von Kategorien in aufsteigender Reihenfolge

Frage: "Kann ich das Dropdown-Menü alphabetisch durch Bearbeiten der Methoden in der Steuerung oder Ansichten?"

Da sie nicht in alphabetischer Reihenfolge in der Datenbank ausgesät, ich frage mich, ob es einen Weg, um Daten Anzeigedaten, die derzeit wie dies standardmäßig aussieht:

| DROPDOWN |
| _Kochen ____ |
| _Zoologie ____ |
| _Geschichte _____ |
| _Gardening__ |
| _Archery ____ |

in:

| DROPDOWN |
| _Archery ____ |
| _Kochen ____ |
| _Gardening__ |
| _Geschichte _____ |
| _Zoologie ____ |

Derzeit hat Kategorien die Werte ID, Name, created_at und updated_at.

Hier ist ein Ausschnitt der Active Relation Datenbank:

Active :: Relation
Kategorie-ID: 1, Name: "Technologie", created_at: "2017.10.10 21.48.59", updated_at: "2017-10-10 21:48:59"
Kategorie ID: 2, Name: "Horror/Mystery", created_at: "2017-10-10 21:50:38", updated_at: "2017-10 -11 00:06:38 "
Kategorie ID: 3, Name:" Fantasy ", created_at:" 2017-10-10 21:50:43 ", updated_at:" 2017-10-10 21:50:43 "
Kategorie ID: 4, Name: "Historische Fiktion", created_at: "2017-10-10 21:50:51", updated_at: "2017-10-10 21:50:51"

Wenn dies nicht ausreicht, kann ich die relevanten Dateien bereitstellen, um das Problem zu klären.

Vielen Dank, dass Sie sich die Zeit genommen haben, um mir zu helfen!

Antwort

0

Ja, Sie können, hier ist die Probe (betrachten Sie mit f als Formularvariablen mit form_for)

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

Wenn Ihre Kategorie mit einer Ressource zugeordnet ist, und Sie versuchen, in einer Form, alle Kategorien anzuzeigen das muss gespeichert werden. Ich gehe davon aus, dass Sie eine Ressource wie Artikel haben und eine Kategorie zum Artikel hinzufügen möchten, während Sie in der Datenbank speichern.

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

in Ihrer Kategorien Modell

Kategorie.rb

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

Nach Ansicht

_form.html.erb

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

Bitte lassen Sie mich wissen, wenn Sie irgendwelche Probleme haben.

0

Sie können alle Kategorien in aufsteigender Reihenfolge aufrufen basierend auf Attributnamen

@categories = categories.All (: order => "name ASC")

hier "name asc" Name Kategorie bezieht sich Name

versuchen Sie dies in Schienen Konsole .. Sie können diese Reihenfolge

sehen
Verwandte Themen