我正在构建一个类似于 Twitter 的克隆,其中包括模型、Hashtag 和 Post,它们has_many: through:
彼此之间存在关系。
目前,访问/hashtags/pizza
将带您进入一个页面,该页面显示所有带有标签#pizza的帖子。我想添加功能,以便您可以在 URL 中传递多个主题标签并查看包含所有这些主题标签的帖子。例如,如果您访问过/hashtags/pizza/pasta
(或hashtags/?pizza&pasta'
任何最容易实现的),您将看到一个包含所有帖子的页面,其中包含标签#pizza和标签#pasta。
我该怎么做?我不知道从哪里开始。
作为记录,我在控制器中想象的代码将是这样的。随意戳它的洞:
1 def show
2 requested_hashtags = ??????? # an array of hashtags e.g. ["music", "guitar"]
3 hashtag1 = Hashtag.find_by_name(requested_hashtags[0]) # in this case r_h[0] = music
4 hashtag2 = Hashtag.find_by_name(requested_hashtags[1]) # and r_h[1] = guitar
5 @posts = hashtag1.posts & hashtag2.posts
6 end
然后在我看来,我只是迭代@posts
. (上面的例子是愚蠢的,因为它假设总是有两个请求的主题标签,但原理是一样的。)
所以我的问题是,我如何完成上面代码片段的第2行?