如何允许用户将其个人资料设为私有或公开?

时间:2013-03-25 03:47:36

标签: ruby-on-rails ruby authentication user-defined-functions

我有一个Rails 3应用程序,这是我想弄清楚的。

我已经拥有一个用户必须登录才能使用的应用,但公众可以查看他们的个人资料。其个人资料的网址为http://myapp.com/users/username

我想在他们的设置中添加一个功能,他们可以将其配置文件设置为公共或私有。它已经公开,因为每个人都可以看到它,但我如何允许私有功能?

基本上,我只希望这部分(http://myapp.com/users/username)能够由用户设置为私有或公共。

1 个答案:

答案 0 :(得分:1)

为公共/私有布尔值添加新列:

rails g migration AddIs_publicToUsers is_public:boolean
rake db:migrate

在您的视图/ users / show.html.erb中(或您的用户页面所在的位置)添加:

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

您还必须在models / user.rb中为rails 3及以下版本访问该属性,或在控制台/ users_controller.rb中为rails 4访问该属性。

Rails 3:

attr_accessible :is_public

Rails 4:

def user_params
  params.require(:user).permit(:is_public)
end