我有一个 Rails 3 应用程序,这是我正在尝试解决的问题。
我已经有一个用户必须登录才能使用的应用程序,但他们的个人资料可供公众查看。他们个人资料的网址是 http://myapp.com/users/username
我想在他们的设置中添加一项功能,让他们可以将个人资料设置为公开或私有(private)。它已经是公开的,因为每个人都可以看到它,但我如何允许私有(private)功能?
基本上,我只希望这部分 ( http://myapp.com/users/username) 能够由用户设置为私有(private)或公共(public)。
最佳答案
为公共(public)/私有(private) bool 值添加一个新列:
rails g migration AddIs_publicToUsers is_public:boolean
rake db:migrate
在您的 View /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 及以下,或在 controller/users_controller.rb 中用于 rails 4。
rails 3:
attr_accessible :is_public
rails 4:
def user_params
params.require(:user).permit(:is_public)
end
关于ruby-on-rails - 如何允许用户将他们的个人资料设为私有(private)或公开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15607307/