Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用rails 4集合并通过枚举确定对象计数?_Ruby On Rails_Ruby On Rails 4_Enums - Fatal编程技术网

Ruby on rails 如何使用rails 4集合并通过枚举确定对象计数?

Ruby on rails 如何使用rails 4集合并通过枚举确定对象计数?,ruby-on-rails,ruby-on-rails-4,enums,Ruby On Rails,Ruby On Rails 4,Enums,我有一个Rails 4应用程序,其中一个用户拥有一个Sales_Opportunity,每个Sales_Opportunity都可以有一个“pipeline_status”,当前作为枚举实现。这很好,但现在我尝试创建一个用户显示,以图形方式显示每个管道状态(从“prospect”到“closed_won”的一系列V形符号),并且我希望在每个V形符号上显示一个徽章,显示用户在每个管道状态中拥有的机会数 我试图在rails中使用count方法,并传入一些条件,但这告诉我用户有多少销售机会(总共),但

我有一个Rails 4应用程序,其中一个用户拥有一个Sales_Opportunity,每个Sales_Opportunity都可以有一个“pipeline_status”,当前作为枚举实现。这很好,但现在我尝试创建一个用户显示,以图形方式显示每个管道状态(从“prospect”到“closed_won”的一系列V形符号),并且我希望在每个V形符号上显示一个徽章,显示用户在每个管道状态中拥有的机会数

我试图在rails中使用count方法,并传入一些条件,但这告诉我用户有多少销售机会(总共),但它不会接受condition参数并根据我传入的枚举过滤计数。有没有人能帮我找到一个资源,帮助我学会正确的使用方法

Sales_Opportunity.rb:

class SalesOpportunity < ActiveRecord::Base
default_scope { order('close_date ASC') }
belongs_to :user
belongs_to :company
has_many :timeline_events, dependent: :destroy
has_many :swots, dependent: :destroy
validates :close_date, presence: true
validates :user_id, presence: true
validates :company_id, presence: true
validates :opportunity_name, presence: true
enum pipeline_status: [ :prospect, :qualifying, :demonstrating, :negotiating, :closed_won, :closed_lost, :dormant ]
end
class SalesOpportunity
我当前尝试在“用户仪表板”上显示这些内容:


编辑:为清晰起见,此页面的当前结果将显示带有数字1的每个徽章。我只为该用户提供了一个销售机会(enum:“Prospect”),它应该为“Prospect”雪佛龙徽章注册“1”,为所有其他雪佛龙徽章注册“0”,以实现我的预期效果


我想知道我是否需要在Sales_Opportunity代码中或者在helper方法中提取这个逻辑作为一个单独的方法调用,但是我想一定有某种方法可以让它基于标准Rails计数特性工作。任何帮助都将不胜感激。

count
不再接受条件参数。改为使用
where
。例如:

替换:

@user.sales_opportunities.count(:conditions => ":pipeline_status == 1")
与:


太棒了-谢谢你的帮助。为什么他们没有更新文档以反映这一点?(可能是因为很多文档仍然是关于Rails 3的?)已经更新了。嗯,我从昨天阅读的文档中得到了使用条件的想法。我想这会让我更加警惕我使用的文档的哪个版本。谢谢你帮我发现了我的错误,我非常感激。
@user.sales_opportunities.count(:conditions => ":pipeline_status == 1")
@user.sales_opportunities.where(pipeline_status: 1).count