ruby-on-rails - ruby rails : Checkbox gets unchecked when trying to edit a post

标签 ruby-on-rails ruby checkbox ruby-on-rails-5

当我创建一个新帖子(passengerride)时,它成功地将多个值存储在数据库中。但是,当我尝试编辑帖子(passengerride)时,复选框未被选中。

这是我的表格:

apps/views/passengerrides/_form.html.erb:

<%= form_for @passengerride do |f| %>
        ......
          <div class="form-group ">
            <div class="control-label col-sm-2 requiredField">
              <%= f.label :okwithgender, 'Driver should be:' %>
              <span class="asteriskField">*</span>
            </div>

            <div class="col-sm-8">
              <div class=" ">
                <div class="checkbox">

                  <label class="checkbox"><input id="okwithgender"  type="checkbox" value="Male" name="passengerride[okwithgender][]">Male</label>

                </div>
                <div class="checkbox">

                  <label class="checkbox"><input id="okwithgender"  type="checkbox" value="Female" name="passengerride[okwithgender][]">Female</label>

                </div>
                <div class="checkbox">

                  <label class="checkbox"><input id="okwithgender"  type="checkbox" value="Other" name="passengerride[okwithgender][]">Other</label>

                </div>
                <div class="checkbox">

                  <label class="checkbox"><input id="okwithgender"  type="checkbox" value="Any Gender" name="passengerride[okwithgender][]">Any Gender</label>

                </div>
              </div>
            </div>
          </div>

   ....
<% end %>

应用/ Controller /passengerrides_controllers:

  def passengerride_params
      params[:passengerride][:okwithgender] = params[:passengerride][:okwithgender].join(', ')
      params.require(:passengerride).permit(:origin, :destination ... :okwithgender)
  end

我想用这个 <%= f.check_box ... %>将解决问题,但我不确定如何编写等同于 <input id="okwithgender" type="checkbox" value="Male" name="passengerride[okwithgender][]">

最佳答案

您应该开始对表单字段使用 Rails 表单助手。 http://guides.rubyonrails.org/form_helpers.html .

在你的情况下,我认为你应该尝试使用单选按钮来实现这一点,因为任何人都会选择这些选项中的一个。

<%= f.radio_button :okwithgender, 'Male' %>
<%= f.label :okwithgender, 'Male', value: 'Male' %>
<%= f.radio_button :okwithgender, 'Female' %>
<%= f.label :okwithgender, 'Female', value: 'Female' %>
<%= f.radio_button :okwithgender, 'Other' %>
<%= f.label :okwithgender, 'Other', value: 'Other' %>
<%= f.radio_button :okwithgender, 'Any Gender' %>
<%= f.label :okwithgender, 'Any Gender', value: 'Any Gender' %>

要通过复选框多选来实现这一点,

f.check_box :okwithgender, {multiple: true}, 'Male'
f.label :okwithgender, 'Male', value: 'Male'
f.check_box :okwithgender, {multiple: true}, 'Female'
f.label :okwithgender, 'Female', value: 'Female'
f.check_box :okwithgender, {multiple: true}, 'Other'
f.label :okwithgender, 'Other', value: 'Other'
f.check_box :okwithgender, {multiple: true}, 'Any Gender'
f.label :okwithgender, 'Any Gender', value: 'Any Gender'

关于ruby-on-rails - ruby rails : Checkbox gets unchecked when trying to edit a post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40691592/

相关文章:

ruby - 是否可以使用 EventMachine 和 Ruby 1.8 发起多个并行 http 请求

ruby - ruby中是否存在/dev/null这样的变量

java - 从数据库加载选中的复选框

ruby-on-rails - rails 错误 : No HTTP_REFERER was set in the request to this action

ruby-on-rails - 使用 Nokogiri 通过 CDATA 属性在 XML 文件中查找元素?

ruby-on-rails - rails : NoMethodError in production only

jquery tablesorter 并选择表标题中的所有复选框

ruby-on-rails - 帮助制定数据库策略,为特定模型实例中的用户赋予角色

ruby-on-rails - rails 模型的默认值

javascript - 在 Angular 9 中创建多个复选框对我不起作用