我似乎无法让我的数组正确转换为字符串。我正在使用rails multiselect:
查看:
<%= f.select :foo, [ ['a'], ['b'], ['c'] ], {:prompt => "Select an alpha"}, {:multiple => true} %>
控制器:
params.require(:bar).permit(:foo => [])
JS查看:
foo.toString() // Gives: ["", "a", "c"]
如何将foo
格式化为a, c
?如果选择了a
和c
?
在rails控制台中,它显示为:
"[\"\", \"a\", \"c\"]"
修改
我的表格列是字符串:(
编辑#2:
我放弃了foo专栏:
remove_column :bar, :foo
与
add_column :bar, :foo, :text, array: true, default: []
现在我的rails c
看起来像是:
[0] "",
[1] "a",
[2] "c"
如何获得:
[0] "a",
[1] "c"
答案 0 :(得分:0)
您可以在模型中使用before_validation回调来删除空白,然后再保存到数据库:
before_validation :remove_blanks_in_foo
private
def remove_blanks_in_foo
self.foo = foo.reject(&:blank?)
end