我在写一些代码时遇到了一些麻烦(我可能会觉得很累),所以我需要一些帮助!
我有一个模型婚礼,它通过连接表有多个服务。这是一个多对多的关系。 每个服务都有一个特定的service_type。
基本上我可以这样做:
myWeddingObject.services.first.service_type
我的问题是,我希望能够直接获得所有可用于婚礼的服务类型。例如:
myWeddingObject.service_types
我的问题是,我是否有义务在我的婚礼模型中编写一个方法,我将获取所有服务并检查其类型然后收集它,还是有其他方式我最初没有看到?
我想在婚礼模型中写下类似的内容:
has_many :service_types, :through => :services
但是你可以假设,它不起作用。 我可能还需要添加另一个模型/ SQL表?
我希望我已经足够清楚并感谢你的帮助,我感激不尽!
答案 0 :(得分:2)
简单的方法就是
wedding.services.map(&:service_type).uniq
...将返回一组服务类型。如果你想要has_many:通过工作,那么你需要使service_type成为自己的模型。如果您想要添加和编辑大量服务类型,那么模型显然是可行的方法。如果它只是一个小的固定集,那么单独的模型可能有点过分。