In Rails, wie soll ich ein Statusfeld für eine Tasks-App implementieren - Ganzzahl oder Aufzählung?

Für eine Rails 3.0 Todo-App habe ich ein Tasks-Modell mit einemStatu Feld. Wie können Sie die Statusfelddaten (Feldtyp) am besten speichern und dennoch eine lesbare Version in einer Ansicht (HTML-Tabelle) anzeigen? Status kann sein:

0 = Normal
1 = Aktiv
2 = Abgeschlossen

Jetzt habe ich das:

Rails Schema Hier:

create_table "tasks",: force => true do | t |
t.integer "status",: limit => 1,: default => 0,: null => false

Rails Modell hier:
class Task < ActiveRecord::Base
  validates_inclusion_of :status, :in => 0..2,
    :message => "{{value}} must be 0, 1, or 2"
Rails Hier ansehen:
<h1>Listing tasks</h1>

<table>
  <tr>
    <th>Status</th>
    <th>Name</th>
    <th></th>
    <th></th>
    <th></th>
  </tr>

<% @tasks.each do |task| %>
  <tr>
    <td><%= task.status %></td>
    <td><%= task.name %></td>
    <td><%= link_to 'Show', task %></td>
    <td><%= link_to 'Edit', edit_task_path(task) %></td>
    <td><%= link_to 'Delete', task, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>
</table>
Bedar

Speichern Sie den Status einer Aufgabe in der Datenbank, sodass die Werte leicht lokalisiert werden können, d. H. Ich bin nicht sicher, ob ich "normal", "aktiv", "erledigt" als Zeichenfolgenfeld speichern möchte.

Lösung muss mit Rails 3.0 funktionieren.

Fragen

Sollte ich das Feld als Ganzzahl speichern (siehe oben)? Wenn ja, wie zeige ich den korrekten lesbaren Status in einer HTML-Tabelle in meiner Rails-Ansicht an, z. In der HTML-Tabelle wird "Aktiv" anstelle von "1" angezeigt.

Sollte ich eine Aufzählung verwenden? Wenn ja, ist dies später leicht zu lokalisieren?

Sollte ich gerade Zeichenfolgen verwenden, z. "Normal", "Aktiv", "Abgeschlossen"

Können Sie ein kurzes Codebeispiel für den View-Helfer, den Controller oder den View-Code bereitstellen, damit dies funktioniert?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage