2016-04-02 5 views
0
kısmi

tablo alanlarını görüntülemek:Raylar 4 - seçici ben her tabloda gösterilen farklı alanlarda ile benim <code>Job</code> modelinin iki farklı tablo sunumlarını görüntülemek için çalışıyorum

dashboard.html.erb

... 
<table class="table table-bordered table-hover table-striped"> 
    <thead> 
    <tr> 
     <th>Job #</th> 
     <th>Job Name</th> 
     <th>Due Date</th> 
     <th>Progress</th> 
    </tr> 
    </thead> 
    <tbody> 
    <%= render @jobs_due_soon %> <!-- version 1 --> 
    </tbody> 
</table> 

... 

<table class="table table-bordered table-hover table-striped"> 
    <thead> 
    <tr> 
     <th>Job #</th> 
     <th>Job Name</th> 
     <th>Cut At</th> 
    </tr> 
    </thead> 
    <tbody> 
    <%= render @jobs_completed %> <!-- version 2 --> 
    </tbody> 
</table> 
... 

_job.html.erb sürüm 1

<tr> 
    <td><%= job.number %></td> 
    <td><%= job.name %></td> 
    <td><%= job.due_date %></td> 
    <td><%= job.progress %></td> 
</tr> 

_job.html.erb sürüm 2

<tr> 
    <td><%= job.number %></td> 
    <td><%= job.name %></td> 
    <td><%= job.cut_at %></td> 
</tr> 

Bunu başarmak için en iyi yolu nedir? İki farklı kısmi olabilir ve görüntülediğim tabloya bağlı olarak her birini arayabilirim. Alternatif olarak, 1 veya 2 sürümlerini belirten yerel bir değişkene geçebilirim. Ancak, bu seçeneklerden hiçbiri, problemi çözmenin doğru yolu gibi hissetmez.

cevap

0

Sorumlulukları nasıl ayırmak istediğinize bağlı olarak bunu yapmanın iki yolu vardır. Kod tablonuza aşina değilim, bu yüzden sınıf ve değişken isimleri sadece genel fikir almak içindir. İş Modeli içine

yeri raporu Mantık:

# jobs_controller.rb 
# ------------- 

    def dashboard 
    @table_one_data = [job.name, job.number, job.due_date, job.progress] 
    @table_one_body = jobs_due_soon 
    @table_two_data = [job.number, job.name, job.cut_at] 
    @table_two_body = jobs_completed 
    render :dashboard 
    end 

# dashboard.html.erb 
# ------------------ 

    <%= render 'table', row_data: @table_one_data, table_body: @table_one_body %> 
    <%= render 'table', row_data: @table_two_data, table_body: @table_two_body %> 


# _table.html.erb 
# ------------------ 

    # format according to how you set up the output of Job::jobs_due_soon and 
    # Job::jobs_completed 
+0

Ben çözüm için teşekkür ederim ama bu gibi farklı bir yaklaşım tercih ediyorum: kontrolöre veri için

# job.rb # ------ def Job.jobs_due_soon # logic for generating the data needed for your jobs due soon table end def Job.jobs_completed # logic for generating the data needed for your jobs completed table end # jobs_controller.rb # ------------------ def dashboard @jobs_due_soon = Job.jobs_due_soon @jobs_completed = Job.jobs_completed render :dashboard end # dashboard.html.erb # ------------------ <%= render 'table', data: @jobs_due_soon %> <%= render 'table', data: @jobs_completed %> # _table.html.erb # --------------- # format according to the how you set up the output of Job::jobs_due_soon # and Job::jobs_completed. # # see second example for suggestions on how to iterate over data of # dynamic length in the table. 

Yeri mantığı Ekran mantığını denetleyiciye koyarak MVC'nin ayrılmasını ihlal eder. – Ryan

+0

Bunun için nasıl bir dava yapabileceğinizi görebiliyorum. Cevabımı güncelledi. – danmakenoise