【发布时间】:2012-03-11 09:41:45
【问题描述】:
快速警告:我对 Rails 还很陌生,而且我的知识有点千篇一律。我知道如何做某些事情,但我缺乏对它们为什么总是有效的重要理解。
我目前有一个用户模型,其中包含大量信息,例如地址、电子邮件等。此外,它还有一个称为可见的哈希。该散列中的键是每条信息,值是真还是假,表示用户是否希望该信息公开可见。虽然我不确定这是否是最好的方法,但除了为每一位信息制作大量布尔变量之外,我想不出任何其他方法。最后,我序列化 :visible 用于存储在数据库中
我希望在我的编辑视图中在表示可见属性的每个信息字段旁边有一个复选框。在阅读了与该主题相关的大量其他帖子并尝试了许多代码变体之后,我总是以某种错误告终。对我来说最直观正确的代码如下:
<%= form_for(@user, :id => "form-info-personal") do |f| %>
...
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.check_box :visible[:name] %>
但我收到一条错误消息,提示无法将符号解析为整数。我不确定这个解析甚至试图在哪里发生,除非它查看 :visible 作为一个数组并尝试使用 :name 作为索引。
如果这个问题微不足道/看似荒谬/缺乏重要信息/等,我提前道歉。任何提示、建议、链接或您拥有的任何东西都将不胜感激,即使它们是类似于“您这样做从根本上错误,请返回并以这种方式进行操作”。
-尼克
【问题讨论】:
-
远离序列化。这是您遇到的第一个问题,但是由于序列化,您会遇到更多问题。添加特定的列完全没有错。
-
@wanghq:序列化没什么问题(如果你做得对的话)。
标签: ruby-on-rails ruby-on-rails-3 hash form-for