Rails 3 - таблицы в html.erb - PullRequest
9 голосов
/ 11 июля 2011

Я хотел бы просмотреть данные из разных таблиц базы данных в виде таблиц, как показано на следующем рисунке: enter image description here

Я знаком с тегами HTML <table>, <td> и <tr>, но у меня возникают проблемы с несколькими запросами в столбце.

<table>
  <tr>
    <th>Skills &nbsp; &nbsp; &nbsp;</th>
    <th>Expected-qualifications</th>
    <th>Current-qualifications</th>
  </tr>

   <% @employee.position.skills.each do |skill| %><% @employee.position.expected_qualifications.each do |expected_qualification| %><% @employee.current_qualifications.each do |current_qualification| %>
  <tr>
    <td><%= skill.kategorien %></td>
    <td><%= expected_qualification.sollqualifikation %></td>
    <td><%= current_qualification.istqualifikation %></td>
  </tr>
  <% end %><% end %><% end %>

</table>

Этот код выглядит так:

enter image description here

Как видите, навыки, ожидаемые квалификации и текущие квалификации повторяются.

Мой вопрос: как коды должны быть упорядочены в таблице, чтобы она выглядела так, как я хочу?

Ответы [ 2 ]

5 голосов
/ 11 июля 2011

Попробуйте zip :

<% @employee.position.skills.zip(@employee.position.expected_qualifications,@employee.current_qualifications).each |skill expected_qualification current_qualification| %>
<tr>
  <td><%= skill.kategorien %></td>
  <td><%= expected_qualification.sollqualifikation %></td>
  <td><%= current_qualification.istqualifikation %></td>
</tr>
<% end %>
1 голос
/ 11 июля 2011

если есть ДЕЙСТВИТЕЛЬНО, может быть более одного skill, expected_qualification и current_qualification, поэтому вы используете has_many ассоциацию для position

<tr>
  <td><%= @employee.position.skills.map(&:kategorien).join(", ") %></td>
  <td><%= @employee.position.expected_qualifications.map(&:sollqualifikation).join(", ") %></td>
  <td><%= @employee.current_qualifications.map(&:istqualifikation).join(", ") %></td>
</tr>

В противном случае вы должны использовать has_one ассоциацию

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