Rails MultiSelect(数组)未正确转换为字符串

时间:2015-11-17 11:46:57

标签: javascript ruby-on-rails ruby-on-rails-4 reactjs

我似乎无法让我的数组正确转换为字符串。我正在使用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?如果选择了ac

在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"

1 个答案:

答案 0 :(得分:0)

您可以在模型中使用before_validation回调来删除空白,然后再保存到数据库:

before_validation :remove_blanks_in_foo

private

def remove_blanks_in_foo
  self.foo = foo.reject(&:blank?)
end