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