我在控制器的新动作中创建了一个字符串数组。现在我想将此数组传递给我的视图文件中使用的jquery函数。我尝试过to_json和html_safe选项,但我还没有得到结果。
请帮我找个出路。
启动和生成阵列的控制器的代码片段是: (我的数组名称是firstname_array)
def string_include(substring,data_ref)
loo=0
firstname_array=Array.new
data_ref.each do |d_ref|
puts "in the loop of string_include method"
my_string=d_ref.compact_string
if my_string.include? substring
puts "String "+ my_string+" includes "+substring
loo=loo+1
puts loo
puts d_ref.firstname
firstname_array && firstname_array.push(d_ref.firstname)
end
end
puts "This is the array"
puts firstname_array
return 100
end
我视图中的javascript代码是: (我想将相同的数组从控制器复制到我的jquery函数中使用的名为availableTags的数组中。
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script>
$(function() {
var availableTags=new Array
availableTags=<%= firstname_array.to_json.html_safe %> ;
document.getElementById("abc").innerHTML = availableTags;
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
答案 0 :(得分:0)
您是否尝试过使用view helper j
<%= j(firstname_array) %>
http://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html
你也可以在内部视图中使用它
var array = [<%= raw firstname_array.to_json %>];
希望有所帮助
编辑:
我认为这应该可行(不需要新的数组,因为它在第二行被覆盖)
var availableTags= [<%= raw firstname_array.to_json %>];