如何在RoR中为此集合中的每个项目添加“”?

时间:2010-07-18 06:35:08

标签: ruby-on-rails collections

目前,我有这段代码:

<%=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: [\&quot;note 1\&quot;, \&quot;note 2\&quot;]
    });
});

1 个答案:

答案 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控制台会转义引号。字符串将在视图中显示\