目前,我有这段代码:
<%=h current_user.notes.collect { |t| t.name }.join(', ') %>
输出:
note 1, note 2, note 3
如何更改它以使输出看起来像这样?
"note 1", "note 2", "note 3"
感谢阅读。
编辑:以下是KandadaBoggu建议的完整代码
$(window).ready(function() {
$("input#note_name").autocomplete({
source: [<%=h escape_javascript(current_user.notes.collect { |t| '"%s"' % t.name }.join(', ')) %>]
});
});
这是输出HTML:
$(window).ready(function() {
$("input#note_name").autocomplete({
source: [\"note 1\", \"note 2\"]
});
});
答案 0 :(得分:2)
试试这个:
current_user.notes.collect { |t| '"%s"' % t.name }.join(', ')
您可以转义javascript的字符串:
escape_javascript(current_user.notes.collect { |t| '"%s"' % t.name }.join(', '))
注意强>
如果您在irb
控制台中测试代码,它将打印以下输出:
"\"note 1\", \"note 2\", \"note 3\""
这是正确的结果,因为irb控制台会转义引号。字符串将在视图中显示\