我使用rails已经有一段时间了,但是我对ruby的功能还不太熟悉,而且我遇到了麻烦。我有一个图书管理员和推荐管理员,一本书有很多推荐我想创建一个推荐列表,但不要重复一本书。
基本上这就是我所拥有的-
#Recommendations controller, index
@recommendations = Recommendation.all
#Recommendation view, index
@recommendations.each do |r|
r.text
r.book.cover_image
end
我试着浏览书籍,基本上在所有书籍上运行每个循环,但之后我必须首先执行@book.recommendation.first——这意味着我无法看到所有的建议。
有没有别的方法我没想到呢非常感谢!
最佳答案
我假设你想做以下事情:
每本书至少有一个推荐
列出这本书,然后是它的建议
有几种方法可以做到这一点。如
#controller
@grouped_recommendations = Recommendation.include(:book).all.group_by(&:book)
#view
@grouped_recommendations.each do |book, recommendations|
book.cover_image
recommendations.each do |recommendation|
recommendation.text
end
end
请注意,我遗漏了您当然需要包含的任何格式,我只是复制了您问题的样式。
关于ruby-on-rails - 如何基于Rail关联防止每个循环出现重复,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30058611/