我使用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/

10-09 13:07