Для приложения Todo на Rails 3.0 у меня есть модель Tasks с полем Status. Как лучше всего хранить данные поля «Статус» (тип поля) и по-прежнему отображать удобочитаемую версию в представлении (таблица HTML)? Статус может быть:
0 = нормальный
1 = активный
2 = завершенный
Прямо сейчас у меня есть это:
Схема рельсов здесь:
create_table "задачи", :force => true do |t|
t.integer "статус", :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"
Рельсы Посмотреть здесь:
<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>
Требования
Сохраните статус задачи в базе данных, чтобы значения можно было легко локализовать, т.е. я не уверен, что хочу хранить «нормальный», «активный», «завершенный» в виде строкового поля.
Решение должно работать с Rails 3.0.
Вопросы:
Должен ли я хранить поле как целое число (см. выше)? Если да, то как мне отобразить правильный удобочитаемый статус в таблице HTML в моем представлении Rails, например. показать «Активно» вместо «1» в таблице HTML.
Должен ли я использовать перечисление? Если да, то легко ли это локализовать позже?
Должен ли я использовать прямые строки, например. «Нормальный», «Активный», «Завершенный»
Можете ли вы предоставить быстрый пример кода помощника представления, контроллера или кода представления, чтобы это работало?