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 
相关问题