当用户取消选择所有选项rails/simple_form时,存储值未设置为nil



除了一个小的"bug"外,我有以下表单输入,它正在工作

<%= f.input :secondary_role, :collection => UseridRole::VALUES, :include_blank => false,:label => "Secondary Role(s):", :input_html => {  :class => " simple_form_bgcolour simple_form_position overide_selection_field_width", :size => 4, multiple: true }, include_hidden: false, :hint => "Hold shift to select multiple roles" %>

我的用户的次要角色以数组的形式存储在我的数据库中:-

"secondary_role": ["moderator"]

我的问题是,在用户设置了次要角色的情况下,不能通过取消选择该选项来取消设置。在列表中取消选择并保存某个选项时,不会发生任何事情。以上主持人只能通过选择其他选项来删除。取消选择所有数组时,如何使数组为空?

删除include_hidden: false选项;隐藏的字段在那里使它自动工作。

(否则,您需要在接收表单提交的控制器操作中手动处理这种情况。(

正如@matthewd所指出的,解决方案是删除include_hidden: false选项,尽管这引入了另一个将空白数组项添加到我的角色数组的问题。

因此,我添加了以下方法来在每次保存之前触发,并删除任何空白数组条目:

def remove_blank_entry
secondary_role = self.secondary_role
if secondary_role.include? ""
secondary_role.delete("")
end
end

最新更新