【发布时间】:2015-03-03 08:49:19
【问题描述】:
在用户注册表单中,我无法输入从多个复选框收集的数据并将其插入我的数据库。
我正在使用 PostgreSQL,Rails 版本 - 4.0.1,Ruby - 1.9.3。
这是我的查看代码(new.html.erb)
div class="field col-md-5">
<%= form_for(@user) do |f|%>
<%= render 'shared/error_messages' %>
<div class="container">
<% flash.each do |key, value| %>
<div class="alert alert-<%= key %>"><%= value %></div>
<% end %>
</div>
<%= f.label :fname,"First Name" %>
<%= f.text_field :fname,:class=>"form-control" %>
<%= f.label :email %>
<%= f.text_field :email,:class=>"form-control" %>
<%= f.label :expertise,"Kindly select your field of expertise" %>
<%= f.label :expertise,"Fundraising" %>
<%= f.check_box(:expertise,:value=>"Fundraising") %>
<%= f.label :expertise,"Enhancing Sales" %>
<%= f.check_box(:expertise,:value=>"Enhancing Sales") %>
<br>
<%= f.label :expertise,"Marketing" %>
<%= f.check_box(:expertise,:value=>"Marketing") %>
<%= f.submit "Create my account", class: "btn btn-large btn-primary" %>
<% end %>
</div>
<h4>or</h4>
<%=button_to "Sign Up with LinkedIn", login_path, :method => :post,class: "btn btn-large btn-primary" %>
</div>
<% end %>
当我使用此代码运行 Web 应用程序时,所有文本字段(例如名字)的数据都会输入到数据库中,但不会存储任何复选框数据。
请告诉我为什么会这样?
我希望我的模型的数据库专业知识列应该由分配给值符号的字符串填充,与每个复选框一起定义,如上所示。
我有一个想法,即制作一个哈希,其中每个字符串都映射到一个 id,然后专业知识列将存储这些由逗号分隔的唯一 id 集。我们将遍历这些数字并找到它们对应的键,并在需要时在页面上打印该键字符串。
例如 - [1 =>"Fund Raising",2 => "Marketing",...]
但不知道如何为此编写代码,对此行的任何建议将不胜感激。
另外你有更好的策略来解决这个问题,请告诉。
提前致谢
PS - 模型“Mentor”在其数据库表中具有此列的专业知识。不改变这种层次结构的解决方案。
【问题讨论】:
标签: ruby-on-rails ruby postgresql ruby-on-rails-4 checkbox