2017-05-31 72 views
0

我試圖創建一個表格,主要按日期顯示各個字段的編號。我只有這一個在視圖內調用查詢(控制器操作)

查看一個模型:

<table class="table-table-verif"> 
     <thead class="fixed_headers"> 
     <tr id = "thead-title"> 
     <th>Date</th> 
     <th># True Positive</th> 
     <th># True Negative</th> 
     <th># False Positive</th> 
     <th># False Negative</th> 
     </tr> 
     </thead> 

     <tbody> 
     <% @verification.each do |s| %> 
     <tr id="thead-value"> 
      // what to do here? 
     </tr> 
     <% end %> 
     </tbody> 
    </table> 

我想在我的控制器來調用這些查詢。

控制器:

def date 
    @verification = Verification.group(:Date).where("Findings = ? or Findings = ?", 'False Positive','False Negative').order(Date: :asc).count 
    end 

    def number_true_positive 
    Verification.group(Date).where("Findings = ?", 'True Positive').order(Date: :asc).count 
    end 

    def number_false_positive 
    Verification.group(:Date).where("Findings = ?", 'False Positive').order(Date: :asc).count 
    end 

    def number_true_negative 
    Verification.group(:Date).where("Findings = ?", 'True Negative').order(Date: :asc).count 
    end 

    def number_false_negative 
    Verification.group(:Date).where("Findings = ?", 'False Negative').order(Date: :asc).count 
    end 

每列都應算各自的記錄數,並把數字基於其最新各自<th>

什麼是更好的方法?

+0

在'helper'方法中寫入這些查詢。 – Emu

+0

*控制器*是放置這些*方法*的不好的地方。您應該將它們移到* model *中。 – Pavan

+0

爲什麼如果你只需要點數呢? –

回答

2

我在代碼中看到很多重複內容,您可以爲每個子查詢創建scopes,並且可以有多個組合。

在你verification.rb

scope :date_grouped, -> { group(:Date) } 

scope :falsy, -> { where("Findings = ? or Findings = ?", 'False Positive','False Negative') } 

scope :truthy, -> { where("Findings = ? or Findings = ?", 'True Positive','True Negative') } 

scope :findings_by, -> (value) { where(Findings: value) } 

scope :date_asc, -> { order(Date: :asc) } 

現在,你可以打電話給他們的要求。

例如

<%= Verification.date_grouped.falsy.date_asc %> 
<%= Verification.date_grouped.truthy.date_asc %> 
<%= Verification.date_grouped.findings_by('True Positive').date_asc %> 
+0

我還不熟悉示波器,會閱讀它的文檔。感謝您的建議,將嘗試這一個:) – Aurb

+0

當然..revert如果有任何疑問.. –

+0

我已經建立了我所有的必要範圍,我將如何實現這個在我的看法(稱他們)? – Aurb

相關問題