Как я могу показать название модели own_to на моей странице индекса в рельсах? - PullRequest
0 голосов
/ 23 мая 2011

У меня есть две модели в 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 %>

Ответы [ 2 ]

0 голосов
/ 23 мая 2011

Ну, вы должны быть в состоянии получить это так же просто, как:

<%= task.status.name %>
0 голосов
/ 23 мая 2011

Я собираюсь сделать предположение, потому что, как и в первом комментаторе, я нашел пост чрезвычайно трудным для чтения.

Так что, если у вас есть Задача и Статус, и они настроены правильно, вы можете получить доступ к статусу.просто используя:

task.status.name

Теперь в вашем контроллере вы захотите включить статус.Это можно сделать очень легко.

Task.find(:all, :include => :status)

Вам нужно будет обязательно добавить индекс в свою базу данных для tasks.status_id.

Надеюсь, это поможет =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...