Rails-使用Posts#Index视图仅显示“喜欢的”帖子

时间:2019-03-22 11:09:07

标签: ruby-on-rails controller

由于posts的索引视图具有相同的代码,因此我在#liked的Posts控制器中有一个操作,该操作保存了current_user所有喜欢的帖子。我正在尝试redirect_to posts_path(@posts),但是由于某种原因,索引视图仍然有@posts返回所有帖子。我确定这里发生了某种魔术。

我已经检查了我的#liked方法,它成功地仅将喜欢的帖子保存在@posts中,但是重定向根本不是通过此操作而是通过原始的#index操作传递@posts

想法?

1 个答案:

答案 0 :(得分:1)

Austin Burke,我假设您在posts controller中具有以下两种方法:

def posts @posts = Post.all end

第二种方法:

def liked @liked_posts = [post1, post2] end

您应该这样做:

def posts @liked_posts = Post.where(liked: true) end

原因是您使用的是redirect_to posts_path(@posts),它调用posts控制器的index方法。 posts控制器的此索引方法应带有@liked_posts