我目前正在尝试从rubyonrails中的选定数据中筛选出那些属性“amount\u available”大于零的数据。通过@events.where(ticket\u categories.amount\u available>0)这不会有问题,但ticket\u categories是一个长度不固定的数组,因为可以有多个类别。如何轻松地遍历where子句中的数组并进行比较?
我只需要输出中至少有一个关联类别的可用数量大于0的事件。
这是我的密码:
@upcoming_events = @events.where("date >=?", Date.current)
@available_events = @upcoming_events.where(ticket_categories[0].amount_available > 0)
json_response(@available_events)
2条答案
按热度按时间j0pj023g1#
你可以锁链
where
条件,您可以添加基于关联模型的条件joins
:注意:数据库连接可能返回重复的记录(取决于数据库结构和条件),因此需要
group
结果由id
.gt0wga4j2#
它只是一个表示,因为事件表通过has\ u many链接到ticketcategories。我使用postgressql,现在可以用以下代码来解决它: