我有一个 Rails 3 应用程序,这是我想弄清楚的。
我已经有一个用户必须登录才能使用的应用程序,但他们的个人资料可供公众查看。他们个人资料的 URL 是http://myapp.com/users/username
我想在他们的设置中添加一项功能,他们可以在其中将个人资料设置为公开或私人。它已经是公开的,因为每个人都可以看到它,但是我如何允许私有功能?
基本上,我只希望这部分(http://myapp.com/users/username)能够由用户设置为私有或公共。
我有一个 Rails 3 应用程序,这是我想弄清楚的。
我已经有一个用户必须登录才能使用的应用程序,但他们的个人资料可供公众查看。他们个人资料的 URL 是http://myapp.com/users/username
我想在他们的设置中添加一项功能,他们可以在其中将个人资料设置为公开或私人。它已经是公开的,因为每个人都可以看到它,但是我如何允许私有功能?
基本上,我只希望这部分(http://myapp.com/users/username)能够由用户设置为私有或公共。
为公共/私有布尔值添加一个新列:
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 %>
您还必须使该属性可访问,在模型/user.rb 中用于 rails 3 及以下,或在 controller/users_controller.rb 中用于 rails 4。
导轨 3:
attr_accessible :is_public
导轨 4:
def user_params
params.require(:user).permit(:is_public)
end