Rails Non-Table-Dropdown-Liste

Ich benötige eine Dropdown-Liste, in der der Benutzer den Tag der Woche auswählt, an dem er jede Woche kommen möchte. Die Werte werden sich nie richtig ändern. Es ist nur Sonntag, Montag, ..., Samstag richtig? Es scheint, als ob mehr Arbeit als nötig, um einen Tisch zu machen und die Tage der Woche in. Ich brauche sicherlich nicht die Möglichkeit, sie zu erstellen, zu aktualisieren oder zu löschen. Gibt es eine einfache Möglichkeit, so etwas zu handhaben? Oder vielleicht könnte es statt wochentags Status wie Aus, Park, Rückwärtsgang, Neutralität sein, fahren. Die Hauptsache ist, dass sich die Werte nie ändern werden. Es gibt nur einige von ihnen. Warum also einen Tisch machen? Ich denke, dass es eine Möglichkeit gibt, ein Modell zu erstellen, das bereits Daten enthält, aber ich könnte mich irren.

Antwort auf "Rails Non-Table-Dropdown-Liste " 3 von antworten

Warum ein Modell erstellen? Verwenden Sie einfach select.

DAYS = ['Monday', 'Tuesday', 'Wednesday', ...]
select(:event, :day, DAYS)

Es ist in der Regel besser, die Konstante in das entsprechende Modell zu platzieren und von dort aus zu verwenden.

In Ihrem Modell:

class Event < ActiveRecord::Base
  DAYS = ['Monday', 'Tuesday', 'Wednesday', ...]
end

und dann in Ihrer Ansicht:

select(:event, :day, Event::DAYS)

und hier ist ein weiterer Trick, den ich viel benutze:

select(:event, :day, Event::DAYS.collect {|d| [d, Event::DAYS.index(d)]})

Probieren Sie das aus:

<%= select_tag(:week_day, options_for_select([['Sunday', 'Sun'], ['Monday', 'Mon'], ...])) %> 

Siehe http://guides.rubyonrails.org/form_helpers.html#theselectandoptionstag

Beachten Sie, dass Ruby die englischen Namen für die Wochentage bereits in seine Datumsklasse integriert hat. Sie sollten versuchen, dies zu nutzen, wenn Sie können. Hier ist die rdoc. .

Dann, wie Can vorgeschlagen hat, tun Sie einfach folgendes:

select(:event, :day, Date::DAYNAMES)

Denken Sie daran, dass diese Lösung NICHT besonders i18n freundlich ist. Wenn i18n ein Problem ist, würde ich auch die localized dates plugin and the changes that were made in Rails 2.2 to support i18n. und die Änderungen, die in Rails 2.2 gemacht wurden, um i18n zu unterstützen.