2016-07-30 34 views
-1

我正在使用rails構建我的第一個應用程序,並且我正在努力爲每個用戶提供一個帳戶。它是一個簡單的應用程序,用戶創建一個帖子並保存。這篇文章可以在索引頁面看到。到現在爲止,我們沒事。當我退出時,我註冊了一個新用戶並登錄。當我進入索引頁面時,我可以看到其他用戶保存的內容。我想爲每個用戶設置一個私人索引頁面,任何人都無法看到用戶在應用程序中保存的內容。我正在使用Gem'Device來驗證我的應用程序,但我不知道如何讓他們的私人帳戶?任何想法?有認證的Rails問題

+0

這不是Rails本身的問題。就個人而言,我會觀看一些Railscasts劇集,並嘗試在沒有Devise的情況下創建自己的用戶身份驗證。如果你不熟悉編程,甚至建議你不要使用它。 –

回答

0

您已經實現了身份驗證,現在您需要構建授權 您必須定義數據可以被用戶訪問

看看:

CanCanCan

0

隨着色器件認證技術,在用戶登錄後,你可以寫一塊乾淨的代碼,以使所記錄的職位在用戶中,你可以使用會話數據來做到這一點current_user輔助方法返回與登錄用戶有關的模型類。通過設計,它確保了認證之後,它具有可以使用的幫助器方法。所以,可以避免沒有這個用戶的錯誤。

#web/controller/post_controller.rb 
before_filter :authenticate_user! 

def list 
    @posts = current_user.posts 
end 

,然後用@posts列表視圖渲染的登錄用戶唯一的帖子。

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

嗨!我認爲我做錯了。你能告訴我在列表視圖上編碼嗎?它給了我這個錯誤:無法找到'ID'的用戶 –

+0

我沒有使用設計,但如果您的應用程序中有一個登錄系統,應該有一個會話控制器來管理會話。這裏的錯誤是說沒有用戶使用該ID。也許會話控制器未保存該用戶的會話變量,或者,如果會話控制器保存了用戶,則不會以用戶身份登錄。在列表視圖中,您只需要像'<%@ posts.each do | post |>一樣打印它們; <%= post.content%>; <% end >它打印用戶的所有帖子。但是錯誤來自控制器。讓我知道你的會議控制器。 – tworitdash

+0

我的應用程序中沒有會話控制器。我只有鎖控制器和信息控制器(static_pages控制器)。寶石「設備」正在完美地驗證我的應用程序,但不是我的用戶隱私。這是我的應用程序https://datainfk.herokuapp.com;如果你想要,你可以看看。請讓我知道我需要哪部分代碼!謝謝 –