2015-11-17 30 views
0

我似乎无法让我的数组正确转换字符串。我使用的轨道多选: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

在轨控制台,它显示为:

"[\"\", \"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

你能我们e您的模型中的before_validation回调可在保存到数据库之前删除空白:

before_validation :remove_blanks_in_foo 

private 

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

嗨。我已经放弃了那个表格列。看我的编辑。 – Sylar

+0

我更新了我的答案。 – rlarcombe

+0

谢谢!我宁愿使用'foo.delete_if(&:blank?)',因为我可以轻松阅读它!但你的工作。 – Sylar

相关问题