[英]How do I count records that satisfy a condition in a associated model?
Okay, what I've got is two models... 好的,我有两个模型...
Jiraissue: Jiraissue:
class Jiraissue < ActiveRecord::Base
# JIRA uses a singular table name for this model
set_table_name 'jiraissue'
has_one :severity
end
Severity: 严重程度:
class Severity < ActiveRecord::Base
belongs_to :jiraissue
end
What I'm trying to do is get a count of all Jiraissues for which jiraissue.severity = "S1" 我正在尝试获取所有jiraissue.severity =“ S1”的Jiraissues的计数
Now it turns out that the jiraissue table has a column for priority so I can pull this trick in the model... 现在事实证明,jiraissue表具有优先级列,因此我可以在模型中使用此技巧...
Jiraissue: Jiraissue:
class Jiraissue < ActiveRecord::Base
# JIRA uses a singular table name for this model
set_table_name 'jiraissue'
has_one :severity
def self.count_priority(priority)
where("PRIORITY = ?",priority).count()
end
end
And then in the view do something like... 然后在视图中执行类似...
<%= (1..4).map {
|priority| Jiraissue.biit.bugs.recent.count_priority(priority)
}.inspect %>
How do I do something similar for Jiraissue to get a count_severity method? 我如何为Jiraissue做类似的事情以获取count_severity方法?
This just doesn't work (nor would I expect it to)... 这只是行不通(我也不希望如此)...
def self.count_severity(severity)
where("severity = ?",severity).count()
end
But I'm totally confused. 但是我完全感到困惑。
Jiraissue.joins(:severities).where(:severities => {:severity => "S1"}).count
model 模型
def self.count_priority(priority)
where("PRIORITY = ?",priority).size
end
controller 控制者
def index
@jiraissues = Jiraissue.count_priority('S1')
end
Doesn't it work? 不行吗
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.