2

我有一個Rails 3應用程序,這是我想弄明白的。如何讓用戶將他們的個人資料設爲私人或公開?

我已經有一個應用程序,用戶必須登錄才能使用,但他們的配置文件可以被公衆查看。他們的個人資料的URL是http://myapp.com/users/username

我想在他們的設置中添加一個功能,他們可以設置他們的配置文件公開或私人。它已經公開,因爲每個人都可以看到它,但我如何允許私人功能?

基本上,我只是想讓這部分(http://myapp.com/users/username)能夠設置爲私人或公共由用戶。

+0

那麼你需要某種包含自己的信息「我的帳戶」頁面的? – David 2013-03-25 03:54:10

+1

你是什麼意思的「私人」?當有人試圖訪問一個私人頁面時應該發生什麼?格式錯誤的錯誤頁面? HTTP 404? 403? 401?通常,在數據庫中保存一個變量,當有人試圖訪問URL時,檢查數據庫併發送適當的響應。 – Phrogz 2013-03-25 03:56:03

+0

不,他們已經擁有在http://myapp.com/users/username鏈接中顯示其帖子的配置文件。即使沒有登錄,每個人都可以查看它,所以我想允許用戶選擇將他們的配置文件設置爲私人。當它被設置爲私人,當有人試圖訪問它,它會顯示說(「你沒有登錄,請登錄這裏。」) – johbones 2013-03-25 04:17:44

回答

1

添加一個新列的公共/私人布爾:

rails g migration AddIs_publicToUsers is_public:boolean 
rake db:migrate 

在視圖/用戶/ show.html.erb(或任何你的用戶頁面)地址:

<% if current_user.is_public %> 
    *Paste in display html/erb for your user show page. 
<% else %> 
    Sorry. Is Private Profile. 
<% end %> 

您還必須使屬性可用,在用於rails 3和更低版本的models/user.rb中,或用於rails 4的controller/users_controller.rb中。

Rails 3:

attr_accessible :is_public 

軌道4,5:

def user_params 
    params.require(:user).permit(:is_public) 
end 
相關問題