我在Rails中有两个模型。任务和状态。我已正确地将关系放在模型中。任务属于状态和状态has_many任务。到目前为止一切都很好。
但是,当在索引页面上显示我的所有任务时(请参阅下面的index.html.erb
),我无法正确显示状态字段。
我应该在我的任务控制器中添加什么以及我应该在下面的index.html.erb
文件中添加哪些代码?
状态模型中只有一个名称,每个任务在数据库中都有一个外键status_id。状态例如是“打开”和“关闭”。我无法在索引页面上显示所有任务的这些状态。
感谢。
<h1>Listing tasks</h1>
<table>
<tr>
<th>Activity</th>
<th>List</th>
<th>Context</th>
<th>Descripton</th>
<th>Project</th>
<th>Deadline</th>
<th>Owner</th>
<th>Delegated to</th>
<th>Status</th>
<th>Estimated hours</th>
<th>Remaining hours</th>
<th>Closed on</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @tasks.each do |task| %>
<tr>
<td><%= task.activity %></td>
<td><%= task.list%></td>
<td><%= task.descripton %></td>
<td><%= task.project %></td>
<td><%= task.deadline %></td>
<td><%= task.owner %></td>
<td><%= task.delegated_to %></td>
<td><%= @status.name %></td> ?????????? Here I want to put my status name f.i. "Open" of that task.
<td><%= task.estimated_hours %></td>
<td><%= task.remaining_hours %></td>
<td><%= task.closed_on %></td>
<td><%= link_to 'Show', task %></td>
<td><%= link_to 'Edit', edit_task_path(task) %></td>
<td><%= link_to 'Destroy', task, :confirm => 'Are you sure?', :method => :delete %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Task', new_task_path %>
答案 0 :(得分:0)
我会猜测,因为像第一个评论者一样,我发现这篇文章非常难以阅读。
因此,如果您有一个任务和状态并且设置正确,那么您只需使用以下命令即可访问状态:
task.status.name
现在,您需要在控制器中包含状态。这可以很容易地完成。
Task.find(:all, :include => :status)
您需要确保在tasks.status_id上为数据库添加索引。
希望这有助于=)
答案 1 :(得分:0)
嗯,你应该能够像以下一样:
<%= task.status.name %>