关于ruby on rails:获取所有有关联记录的记录

Get all records that have an associated record

一个 Post 有_many Tags。每个标签记录都有一个名称,例如"时尚"或"商业"。

如何获取所有标签为"时尚"的帖子?

1
2
3
4
5
# Get all posts
@posts = Post.all

# Get the filter tag
@filter_tag = Tag.find_by_name(params[:filter_name])

好的,现在我们有了所有帖子,现在我只想要具有@filter_tag 的@posts。我该怎么办?

我可以遍历每个帖子,并检查它是否有过滤器标签。如果是这样,请将其添加到数组中。我确信 Rails ActiveRecord 有更好的方法。


如果您的关联设置正确,那么

1
@filter_tag_posts = @filter_tag.posts