【发布时间】:2019-09-26 12:17:11
【问题描述】:
我有一个带有多个复选框的表单,我想在保存到数据库之前将它们的值组合成一个字符串。我的表单设计如下:
<%= simple_form_for(@health_profile) do |f| %>
<% @hp_prior.medications.split(", ").each do |med| %>
<%= check_box_tag "health_profile[medications][]", med, false, id: med, multiple: true %>
<label for="<%= med %>"><%= med.capitalize %></label>
<% end -%>
<% end -%>
在我的控制器中,我已将 :medications 更改为接受一个数组:
def health_profile_params
params.require(:health_profile).permit(:medications => [])
end
但是我遇到了数据问题,因为提交的表单参数是:
Parameters: {... "health_profile"=>{"medications"=>["zyrtec for allergies", "advil"]}, "commit"=>"Submit"}
但在调用HealthProfile.new(health_profile_params) 后,记录显示为:
#<HealthProfile:0x007fb08fe64488> {... :medications => "[\"zyrtec for allergies\", \"advil\"]"}
如何组合这些值,使最终的 @health_profile 看起来像:
#<HealthProfile:0x007fb08fe64488> {... :medications => "zyrtec for allergies, advil"}
【问题讨论】:
标签: ruby-on-rails forms checkbox