2017-06-20 50 views
0

我想循环使用group by的日期,但我收到此错误。未定义的方法查找[Fri,2017年1月20日]:Array

“未定义方法 '发现' 用于[星期五,2017年1月20日]:阵列”

控制器:

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

型号:

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 

查看:

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

我对rails很新颖。先谢谢你!

+0

上线正是引发错误? –

+0

对这一个​​<%= ds.findings%> – Aurb

+0

首先有多个错误,不要group_by数组,只要'@ date.group_by {| d | d.Submit_Date}'尽管它会解决当前的问题,但会引发另一个......您究竟想要做什么? –

回答

1

从控制器:

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

线:

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

会导致这样的:

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

所以,当我们在视图中使用它:

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

因此未定义方法的例外情况。

为了解决这个问题,我们只需要使用键和值在each像这样:

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

我收到#的错误“未定义的方法调查结果”“ – Aurb

+0

检查您是否在验证表中有”发现“列。 – Surya

+0

没有,我试图从我的模型中调用类方法。 – Aurb

相关问题