我正在制作它,以便用户可以选择允许他们的个人资料公开或仅允许注册用户。
以下是我采取的步骤:
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,那么只有登录的网站用户才能查看。
答案 0 :(得分:0)
你的问题实际上是多个问题。
鉴于这似乎是具有默认值的强制性和二元选择,单选按钮将是您最好的选择。作为提示,请确保您的标签设置正确,以便用户可以单击标签,而不必使用鼠标找到单选按钮(这很小)。
如果在提交表单后单选按钮没有更新,则用户的输入会在某处丢失。检查提交的参数以查看控制器是否正在接收它们,然后确保将它们转换为已保存的记录。如果正在更新记录,请确保您的单选按钮反映表单本身的数据库值。
我的建议是创建一个before_filter
轮廓控制器,它检查该用户是否已登录的is_public
,支票的值上,然后重定向你喜欢的地方未经验证用户。