📜  数组 rails 中的复选框标记 (1)

📅  最后修改于: 2023-12-03 14:54:58.389000             🧑  作者: Mango

数组 Rails 中的复选框标记

在 Rails 中,有时我们需要给用户提供多选的选项,这时候就可以使用 Rails 的复选框标记。复选框标记允许我们标记多个选项,然后将这些选项的值作为一个数组传递给控制器。

表单中的复选框标记

我们可以使用 Rails 提供的 check_box_tag 方法来创建一个复选框标记。下面是一个例子:

<%= check_box_tag 'fruit[]', 'apple', true %>

这个标记将创建一个名称为 fruit[] 的复选框,它的值为 apple,初始被选中状态为 true。注意名称 fruit[] 中的方括号,这个方括号允许我们传递多个值给控制器,这些值将被封装成一个数组。

如果我们需要显示多个复选框标记,可以使用循环语句:

<% ['apple', 'banana', 'orange'].each do |fruit| %>
  <%= check_box_tag 'fruit[]', fruit, true %>
  <%= label_tag fruit, fruit.capitalize %>
<% end %>

这个代码片段将创建三个复选框标记,分别表示苹果、香蕉和橙子。fruit[] 中的方括号允许我们将它们作为一个数组传递给控制器。

控制器中的参数

当我们提交表单时,复选框标记的值将作为一个数组传递给控制器。我们可以在控制器的方法中使用 params 方法来获取这个数组:

def create
  fruits = params[:fruit] # ['apple', 'banana', 'orange']
  # Do something with the fruits array
end

在这个例子中,params[:fruit] 将返回 ['apple', 'banana', 'orange'],这个数组包含了所有被选中的水果名称。

总结

复选框标记是一个非常实用的 HTML 元素,它允许我们获取用户选择的多个值,并将它们封装成一个数组传递给控制器。在 Rails 中,我们可以使用 check_box_tag 方法来创建一个复选框标记,并在控制器的方法中使用 params 方法获取它的值。