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
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>
BedarSpeichern 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.
FragenSollte 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?