【问题标题】:Setting a check box as checked or unchecked based on a value in a model on page load根据页面加载时模型中的值将复选框设置为选中或未选中
【发布时间】:2016-06-19 11:33:39
【问题描述】:

假设我在这样的表单上有一个复选框

 <%= check_box_tag(:monday) %>

提交后,复选框会更新模型。当用户加载页面时,如果“星期一”的模型值为真,我希望复选框被选中,如果模型值为假,则不选中。

我倾向于使用一个帮助方法,该方法将为该值返回 true 或 false,这应该很简单,但是我如何从视图中调用该方法并在页面加载时获取 true/false 值?

编辑:

<%= form_for @recur_breakfast_plate, url: update_recur_breakfast_plate_path do |f| %>
                  </br>
                  <div class='field form-group'>
                    <div class='checkbox-inline'>
                      <%= check_box_tag(:monday) %>
                      <%= label_tag(:monday, "Monday") %>
                    </div>

                    <div class='checkbox-inline'>
                      <%= check_box_tag(:tuesday) %>
                      <%= label_tag(:tuesday, "Tuesday") %>
                    </div>

                    <div class='checkbox-inline'>
                      <%= check_box_tag(:wednesday) %>
                      <%= label_tag(:wednesday, "Wednesday") %>
                    </div>

                    <div class='checkbox-inline'>
                    <%= check_box_tag(:thursday) %>
                    <%= label_tag(:thursday, "Thursday") %>
                    </div>

                    <div class='checkbox-inline'>
                      <%= check_box_tag(:friday) %>
                      <%= label_tag(:friday, "Friday") %>
                    </div>
                    <%= f.submit "Submit", class: "btn btn-xs btn-success" %>

                  </div>
 <% end %>

与问题关联的 form_for ^

【问题讨论】:

标签: ruby-on-rails ruby


【解决方案1】:

默认情况下,Rails 应该在 edit 操作之前执行的 before_action 中设置 @recur_breakfast_plate。这样,所有字段都将具有正确的值。

你可以试试

<%= check_box_tag :day, @recur_breakfast_plate.day %>

【讨论】:

  • 刚刚试过这个,但根本没有任何区别。 @recur_breakfast_plate.day 的值能否用于在 check_box_tag 中设置默认的“选中”值?
  • 是的,但是您必须将 day 替换为正确的日期。您传递给 check_box_tag 的第二个参数将产生输入的值。您应该检查示例in the doc
  • 忽略我之前的评论,当页面加载而不是加载 current_user 的模型时,我在控制器中创建了一个新的 RecurringBreakfastPlate。它现在正在工作!
猜你喜欢
  • 2021-08-12
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-27
  • 1970-01-01
  • 2013-08-28
相关资源
最近更新 更多