2017-01-09 61 views
0

Im試圖從Users獲取所有Posts。我正在使用act_as_follower寶石。用戶遵循profile模型,並且Posts屬於Useract_as_followers獲取我關注的所有用戶的帖子

我的用戶模型:

acts_as_follower 

我的剖面模型的用戶如下:

belongs_to :user 
    acts_as_followable 

Post模型:

belongs_to :user 

我的帖子Controller.rb:

def follow 
    @profile = Profile.find(params[:id]) 
    current_user.follow(@profile) 
    redirect_to :back 
    end 

    def unfollow 
    @profile = Profile.find(params[:id]) 
    current_user.stop_following(@profile) 
    redirect_to :back 
    end 

我試着去實現一些像這樣提供使用follows_by_type方法:

@posts = current_user.follows_by_type('Post').order("created_at DESC") 

但事實是用戶遵循剖面模型,但在這裏,我正在尋找一種「郵報」。

編輯

在我的索引控制器心中已經建立如下:

@favoritePost = Post.where(user_id: current_user.all_follows.pluck(:id)) 

並在視圖IV實現這一點:

<% if user_signed_in? %> 
    <%@favoritePost.each do |post| %> 
     <%= post.title %> 
    <% end %> 
<% end %> 

回答

0

我計算出此解決方案,可能不是最好的,但根據需要它的工作原理。

在我控制我此設置:

@following = current_user.all_following 
@followposts = @following.each do |f| 
    f.user.id 
end 

在我看來,我已經設置爲:

<% @followposts.each do |f| %> 
    <% f.user.posts.each do |g| %> 
    <%= g.title %> 
    <% end %> 
<% end %> 
+0

我已經更新了我對你的回答。 –

1

寶石讓你跟着多個模型和follows_by_type('Post')篩選您關注的帖子。

您要做的是從您關注的用戶處返回帖子。

控制器

@posts = Post.where(user_id: current_user.all_following.pluck(:id)) 

查看

<% @posts.each do |post| %> 
    <%= post.title %> 
<% end %> 
+0

我會需要添加'acts_as_followable'我的帖子模式? –

+0

@GurmukhSingh你不需要,因爲你沒有關注帖子,只是用戶。 –

+0

我得到未定義的方法'all_follows'爲零:NilClass –

相關問題