允许用户在公共和私人配置文件之间进行选择。更好的方式在视图中显示这个?

时间:2013-03-30 20:42:20

标签: ruby-on-rails ruby ruby-on-rails-3 radio-button

我正在制作它,以便用户可以选择允许他们的个人资料公开或仅允许注册用户。

以下是我采取的步骤:

rails g migration AddIs_publicToUsers is_public:boolean
rake db:migrate

我有:is_public to default =>在我的数据库中是真的

然后我将其添加到user.rb模型

attr_accessible :is_public

现在我正在尝试创建视图但是使用radioboxes而不是复选框更好吗?

<%= f.label :is_public, "Set Profile as Private" %>
      <%= f.check_box :is_public, :checked => false %>

上面的问题是,在用户将其个人资料检查为私人资料并返回该页面后,它不会保持检查状态,这意味着用户无法再将其个人资料公开。

最后,我如何确保is_public指的是非签名用户与登录用户?例如,如果is_public为true,则包括已登录和未登录在内的所有人都可以查看该配置文件。但是,如果is_public为false,那么只有登录的网站用户才能查看。

1 个答案:

答案 0 :(得分:0)

你的问题实际上是多个问题。

Radio vs Checkbox

鉴于这似乎是具有默认值的强制性和二元选择,单选按钮将是您最好的选择。作为提示,请确保您的标签设置正确,以便用户可以单击标签,而不必使用鼠标找到单选按钮(这很小)。

单选按钮未更新

如果在提交表单后单选按钮没有更新,则用户的输入会在某处丢失。检查提交的参数以查看控制器是否正在接收它们,然后确保将它们转换为已保存的记录。如果正在更新记录,请确保您的单选按钮反映表单本身的数据库值。

已登录用户与未登录用户

我的建议是创建一个before_filter轮廓控制器,它检查该用户是否已登录的is_public,支票的值上,然后重定向你喜欢的地方未经验证用户。