ruby-on-rails - 如何允许用户将他们的个人资料设为私有(private)或公开?

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

我有一个 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/

相关文章:

ruby-on-rails - 如何理解我在 Ubuntu 中的 Ruby 环境?

python - 多台主机上的并行 rsync

mysql - 为 wiki 添加安全性

c# - 使用 https 协议(protocol)使用 webservice

ruby-on-rails - 如何根据父对象的状态验证嵌套模型对象?

ruby-on-rails - Rails 以另一种格式翻译当前日期

javascript - 用户无法在 js.erb 文件中渲染

ruby-on-rails - 从 lib/中的文件获取 rails 中的当前请求

ruby-on-rails - Rails Rspec 模型规范用户:电子邮件 ActiveRecord::RecordInvalid

javascript - 如何在服务器端(Node.js)以编程方式验证 Facebook 用户的访问 token ?