2011-07-11 16 views
7

html.erb tablolar gösterir: Ben HTML etiketleri <table>, <td> ve <tr> aşina olduğum enter image description hereRaylar 3 - Bu resim gibi tablolarla bir görünümde farklı veritabanı tablolardan veri görüntülemek istediğiniz

ancak bir sütunda birden çok sorgu ile sorun yaşıyorum.

<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> 

Bu kod şuna benzer: Gördüğünüz gibi

enter image description here

, beceri, beklenen-nitelikleri ve akım nitelikleri tekrarlayın.

Soruma: Kodlar tablonun içinde nasıl sıralanmalı, böylece istediğim gibi görünecek?

cevap

5

zip deneyin:

<% @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 %> 
+0

@ Sam Ruby: Teşekkürler, bu mantıklı geliyor, ama ben ve bir sözdizimi hatası ve nedenini bilmiyorum. Zaten '@employee.position.skill (...) 'yi <% %> bileziklerine sokmayı denedim, ama yine de çalışmak istemiyor, o zaman bu parçadan hoşlanmıyor. | Skill expected_qualification current_qualification | ' – Kirinriki

+0

sözdizimi hatası ve düzeltildi. Lütfen tekrar deneyin. –

+0

@ Sam Ruby: Üzgünüz, hala çalışmıyor. Rayların hala tezgahta bazı sözdizimi problemleri vardır. Öyleyse 3 sayaç sahibi olmanın doğru yolu değil gibi görünüyor? – Kirinriki

1

varsa GERÇEKTEN yüzden Aksi takdirde has_one dernek kullanmalıdır 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> 

için has_many assosiation kullanmak birden fazla skill, expected_qualification ve current_qualification olabilir

+0

@ fl00r: Bir pozisyonun birçok yeteneği vardır ve bir yetenek birçok pozisyona aittir (örneğin, her iki pozisyonun da krank yapmak için sürücü ehliyeti olması gerekir). Ve her pozisyon ve beceri kombinasyonunun beklenen bir niteliği vardır. Mevcut yeterlilik çalışan üzerinde eğiliyor. Hala bir sendikaya ihtiyacım var mı? kodunuz herhangi bir sözdizimi hatası vermez, ancak komutları yürütmez, sadece erb içinde gösterir. 'un içinde kod çalıştırılamaz mı? – Kirinriki

+0

@Kirinriki, hayır uygulanmalı. Ve parantezleri kapatmayı unuttum. – fl00r

+0

@ fl00r: Köşeli parantezlerin kapalı olmadığını fark ettiğiniz için teşekkür ederiz. Şimdi "NoMethodError", "Position 1" için undefined method current_qualifications "yazıyor: Position'. iç çekmek. Yine de teşekkürler! – Kirinriki

İlgili konular