Для приложения Rails 3.0 Todo у меня есть модель задач с полем Статус. Какой лучший способ сохранить данные поля состояния (тип поля) и по-прежнему отображать читаемую человеком версию (таблицу HTML)? Статус может быть:
0 = Нормальный
1 = Активный
2 = Завершено
Сейчас у меня есть это:
Схема рельсов Здесь:
create_table "tasks",: force = > true do | t |
t.integer "status",: limit = > 1,: default = > 0,: null = > false
Rails Model здесь:
class Task < ActiveRecord::Base
validates_inclusion_of :status, :in => 0..2,
:message => "{{value}} must be 0, 1, or 2"
Rails View Here:
<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>
Требования
-
Сохраните состояние задачи в db, чтобы значения были легко локализованы, то есть я не уверен, что хочу сохранить "нормальный", "активный", "завершенный" как поле строки.
-
Решение должно работать с Rails 3.0.
Вопросы:
-
Должен ли я хранить это поле как целое число (см. выше)? Если да, то каким образом я могу отобразить правильный читаемый пользователем статус в таблице HTML в моем представлении Rails, например. в таблице HTML отобразите "Актив" вместо "1".
-
Должен ли я использовать перечисление? Если да, то легко ли локализовать позже?
-
Следует использовать прямые строки, например. "Нормальный", "Активный", "Завершено"
-
Можете ли вы предоставить быстрый пример кода для помощника, контроллера или кода просмотра, чтобы сделать это?