我正在尝试在一个输入字段中创建一个值数组。然而,值需要有引号,而我很难让引号相互抵消。
下面是我的代码:
<input type="text" data-provide="typeahead"
data-source='[<% @results.each do |result| %>"<%= result['name'] %>",<% end %>]'>我的问题是我有两套"或'。当我尝试像result[name]这样不带引号的东西时,我得到了错误:未定义的局部变量或方法‘`name’。
更新为我需要的数据源有‘’和数据里面有''s
我怎么才能避免这个问题呢?
发布于 2012-07-05 07:52:24
尝尝这个
<input type="text" data-provide="typeahead" data-source="[<%= @results.map { |r| "'#{r['name']}'" }.join(',') %>]">在IRB中,这是发生的事情
>> results = [{'name' => "abc"}, {'name' => "fds"}]
=> [{"name"=>"abc"}, {"name"=>"fds"}]
>> results.map { |r| "'#{r['name']}'" }.join(',')
=> "'abc','fds'"发布于 2012-07-05 07:55:04
您应该将其重写为如下内容:
<input type="text" data-provide="typeahead" data-source="[<%= @results.each {|result| result['name']} %>">注意:此代码未经过测试。
本质上,评估beestings内部的ruby块的结果应该是所需的字符串-您不应该做任何beestings的嵌套。
发布于 2012-07-05 11:55:53
<input type="text" data-source='<%= @results.collect(&:name).to_json %>' data-provide="typeahead">属性两边的引号在html5中是可选的
https://stackoverflow.com/questions/11336400
复制相似问题