2010-04-12 12 views
5

accepts_nested_attributes_for ben şu raylar modelleri var: Aşağıdaki form var, benim bakış kodundafields_for ile group_by kullanma ve

class Release < ActiveRecord::Base 
    has_many :release_questionnaires, :dependent => :destroy 
    accepts_nested_attributes_for :release_questionnaires 
    ... 
end class 

class ReleaseQuestionnaire < ActiveRecord::Base 
    belongs_to :release 
    belongs_to :milestone 
    ... 
end class 

.

<% form_for @release, ... do |f| %> 
    ... 
    <table class="questionnaires"> 
    <% f.fields_for :release_questionnaires, @release.release_questionnaires.sort_by{|ra| ra.questionnaire.name} do |builder| %> 
     ... 
    <% end %> 
    </table> 
<% end %> 

Bu, soru formlarını istediğiniz gibi görüntüleyip düzenlememi sağlar. Bununla birlikte, soru formlarını, tek bir tabloda değil, ilişkilendirildikleri kilometre taşıyla gruplandırılmış kendi tablolarına ayırmak için ek bir gereksinimim vardır. Group_by yöntemi bunu gerçekleştirmek için tasarımmış gibi görünür, ancak etiketin içinde istenen şekilde çalışmasını sağlayamıyorum.

Ben, belirgin bir şey eksik ben bir acemi olarak ... Herhangi bir yardım takdir olmasından kaynaklanıyor olabilir.

cevap

7

Bu, aradığınız şey mi?

<% form_for @release, ... do |f| %> 
    ... 
    <% @release.release_questionnaires.group_by {|rq| rq.milestone }.each do |milestone, questionnaires_group| %> 
    <table class="questionnaires"> 
     <% f.fields_for :release_questionnaires, questionnaires_group.sort_by{|rq| rq.name} do |builder| %> 
     ... 
     <% end %> 
    </table> 
    <% end %> 
<% end %> 
+0

Evet - o kadar. Bazen ağaçların ormanlarını görmek zor olabilir. Bana yardım ettiğin için teşekkürler. –

+0

Bu nasıl çalışır? Ray taşı, release_questionnaire ile henüz ilişkilendirilmediğinde, raylar group_by kilometre taşı nasıl olur? Soruyorum çünkü bu kendi uygulamasında çalışmıştı ve aniden çalışmayı bıraktı çünkü grup ya da sıralama yapmak için 'kilometre taşı' bulamadı. Serbest bırakma anketi henüz mevcut değil ve bunun için de mihenk taşı yok .... yani, nasıl gruplanacağını nasıl bilebilirdi? (basitlik için bu örnekteki öznitelik isimlerini kullanıyorum) – hellion