当用户取消选择所有选项时,存储值未设置为零 - rails / simple_form
Stored value not being set to nil when user deselects all options - rails / simple_form
除了一小部分 '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
除了一小部分 '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