У меня есть форма с несколькими флажками, и я хотел бы объединить их значения в строку перед сохранением в базе данных.Я разработал мою форму как:
<%= 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"}