没有模型的Ruby on Rails表单复选框?

时间:2019-01-14 21:42:58

标签: ruby-on-rails

我想以我的形式创建一个普通的复选框元素,我将在控制器的index方法中引用该元素。布尔值将确定我希望设置用于我的过滤初始化的两个范围之一。该复选框的值将不会用于表单提交,也不会保留在数据库中,它仅用于确定在选择了-全部-选项时用户是否希望看到“已关闭”票证(默认值为排除已关闭)票。)

我的头都缠在我一直在阅读的所有搜索结果上,真是太糟糕了。可能有人为我感到抱歉,并告诉我如何进行?非常感谢。

感谢您抽出宝贵的时间来阅读我的问题,我很重视您的关注。

3 个答案:

答案 0 :(得分:1)

如果我阅读了您的问题,则需要check_box_tag this is the reference,下面是示例代码

<%= check_box_tag 'receive_email', 'no',false, class: "name" %> 

信息:

  • receive_email =仅本地变量名
  • 'no'=样本值,您可以用整数/字符串填充
  • false =呈现时的默认复选框条件

答案 1 :(得分:0)

此信息对我非常有用。

示例使用复选框但不希望其包含在模型中并且不保存到数据库中。

型号: 关于attr_accessorattr_accessible

attr_accessor           :checkbox_checked
attr_accessible         :checkbox_checked

查看

...
<%= f.check_box :checkbox_checked %>
  <span class="small_label">See closed tickets?</span>
...

控制器

...
    if params[:user][:checkbox_checked] == "1"
        # do something
    end
...

来源:How create a virtual attribute in Rails

清楚并查看strong params

也很重要

希望这对我有帮助,我想详细解释一下,但是我是这个主题的新手。

答案 2 :(得分:0)

您应该可以使用表单元素上的 check_box 方法添加它。

<%= form_with: @model do |form| %>
  <%= form.email :field_on_model %>
  <%= form.check_box :field_not_on_model %>
  ... 
<% end %>

在 params 散列内部,您将看到:{"field_on_model" => "travis@example.com", "field_not_on_model" => "0"}

所以您应该可以使用 params['field_not_on_model'] 做任何您需要的事情。