2016-09-15 56 views
0

我正在創建一個應用程序,在該應用程序中會員註冊並可以創建帖子,並且用戶可以在該帖子上撰寫評論而無需註冊,評論具有自己的索引視圖。我搜索了四周,但找不到如何僅顯示特定於其帖子的當前用戶評論的答案。任何幫助將不勝感激。提前致謝。僅使用devise顯示current_user的評論

我有以下的關聯:

class User < ApplicationRecord 
has_many :posts 
has_many :reviews, through: :posts 
end 

class Post < ApplicationRecord 
belongs_to :user 
end 

class Review < ApplicationRecord 
belongs_to :post 
end 

在評論控制器指數方法,我有以下的代碼效果很好,但它顯示給所有用戶的評價,因爲只有已登錄的用戶需要能夠查看特定帖子的所有評論。

def index 
post = Post.friendly.find(params[:post_id]) 
@reviews = post.reviews 
end 

是否有可能使用使用USER_ID和POST_ID和if/else語句在視圖中陳述涉及,要審查,因此,只有職位的擁有者可以查看所有相關評論?

回答

0

假設您的評論模型有一列created_by_id存儲創建該評論的用戶ID。

嘗試這樣

def index 
post = Post.friendly.find(params[:post_id]) 

#Write where condition to filter current_user reviews 
@reviews = post.reviews.where(created_by_id: current_user_id) 
end 
+0

我的問題是,評論家並不需要註冊,所以數據庫就不會創建審查用戶的記錄,我需要在其中一種方式我可以參考創建該帖子的用戶以及屬於該帖子的評論。因此,如果current_user是Post創建者,他需要能夠查看爲其帖子創建的所有評論。 –