2017-06-20 1 views
0

Ich versuche, Daten mit der Gruppe nach zu loopen, aber ich bekomme diesen Fehler.undefined Methode 'finden' für [Fr, 20. Januar 2017]: Array

"nicht definierte Methode 'Ergebnisse' für [Fr, 20. Januar 2017]: Array"

Controller:

def summary 
    @date = Verif.all 
    @sub_date = @date.group_by{|d| [d.Submit_Date]} 
end 

Modell:

class Verif < ActiveRecord::Base 

    def self.findings 
    Verif.where("Findings = ? or Findings = ?", 'FP','FN').count 
    end 

    def self.received 
    Verif.where.not("App_ID", '').count 
    end 

    def self.tp 
    Verif.where("Findings = ?", 'TP').count 
    end 

end 

Aufrufe:

<tr id="thead-value"> 
     <td><%= @sub_date.each do |date|%></td> 
     <% for ds in date %> 
     <td><%= ds.findings%></td> 
     <td><%= ds.received%></td> 
     <td><%= ds.tp%></td> 
    </tr> 

Ich bin sehr neu in Schienen. Vielen Dank im Voraus!

+0

auf welcher Linie genau der Fehler ausgelöst wird? –

+0

zu diesem <% = ds.findings%> – Aurb

+0

Es gibt mehrere Fehler hier zuerst, nicht group_by Array, nur tun @ date.group_by {| d | d.Submit_Date} 'obwohl es das aktuelle Problem lösen wird, aber ein anderes Problem ... was genau versuchen Sie zu tun? –

Antwort

1

vom Regler:

def summary 
    @date = Verif.all 
    @sub_date = @date.group_by{|d| [d.Submit_Date]} 
end 

Line:

#=> {["Fri, 20 Jan 2017"] => [d1, d2], ...} 

Also, wenn wir es in der Ansicht verwenden:

@sub_date = @date.group_by{|d| [d.Submit_Date]} 

in dieser Folge wird

@sub_date.each do |date| # date will be the key: ["Fri, 20 Jan 2017"] 

Daher die Ausnahme für die undefinierte Methode.

Um dies zu lösen, müssen wir wie so in each Schlüssel und Wert verwenden:

@sub_date.each do |_, date| # date will be the value: [d1, d2... ] 
          # and key will be ignored because of a "_" 
+0

Ich habe den Fehler "undefinierte Methode' findings 'für # " – Aurb

+0

Überprüfen Sie, ob Sie Spalte' Befunde' in der Tabelle verifs haben. – Surya

+0

Keine, ich habe versucht, eine Klassenmethode von meinem Modell zu nennen. – Aurb

Verwandte Themen