要允许用户从 Rails 的多选框中选择零个选项,您可以使用以下方法:
allow_blank
选项:在您的模型中,您可以添加 allow_blank
选项来允许用户选择零个选项。例如,如果您有一个名为 Person
的模型,并且希望允许用户选择零个或多个电话号码,您可以这样做:
class Person< ApplicationRecord
validates :phone_numbers, allow_blank: true
end
在您的视图中,您可以添加一个空选项,以便用户可以选择零个选项。例如,如果您有一个名为 Person
的模型,并且希望允许用户选择零个或多个电话号码,您可以这样做:
<%= form_with(model: person) do |form| %>
<%= form.collection_select :phone_numbers, PhoneNumber.all, :id, :number, {}, { multiple: true, include_blank: true } %>
<%= form.submit %>
<% end %>
这将在多选框中添加一个空选项,允许用户选择零个选项。
在您的控制器中,您可以处理空选项,以便在保存到数据库之前将其转换为零个选项。例如,如果您有一个名为 Person
的模型,并且希望允许用户选择零个或多个电话号码,您可以这样做:
class PeopleController< ApplicationController
def create
person_params[:phone_numbers] = [] if person_params[:phone_numbers].blank?
@person = Person.new(person_params)
if @person.save
redirect_to @person
else
render :new
end
end
private
def person_params
params.require(:person).permit(:name, phone_numbers: [])
end
end
这将确保在保存到数据库之前,如果用户选择了零个选项,则将其转换为零个选项。
总之,要允许用户从 Rails 的多选框中选择零个选项,您需要在模型中添加 allow_blank
选项,在视图中添加空选项,并在控制器中处理空选项。
领取专属 10元无门槛券
手把手带您无忧上云