对于 Rails 3.0 Todo 应用程序,我有一个带有Status字段的 Tasks 模型。存储状态字段数据(字段类型)并仍然在视图(HTML 表)中显示人类可读版本的最佳方式是什么?状态可以是:
0 = 正常
1 = 活动
2 = 完成
现在我有这个:
Rails 架构在这里:
create_table "tasks", :force => true do |t|
t.integer "状态", :limit => 1, :default => 0, :null => false
Rails 模型在这里:
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。
问题:
我应该将该字段存储为整数(见上文)吗?如果是这样,我如何在我的 Rails 视图中的 HTML 表格中显示正确的人类可读状态,例如在 HTML 表格中显示“活动”而不是“1”。
我应该使用枚举吗?如果是这样,这以后容易本地化吗?
我应该使用直字符串,例如“Normal”、“Active”、“Completed”
你能提供一个视图助手、控制器或视图代码的快速代码示例来完成这项工作吗?