与在rails中查看从控制器到javascript的数组相关的问题

时间:2016-07-05 12:20:29

标签: ruby-on-rails arrays ruby string jquery-ui

我在控制器的新动作中创建了一个字符串数组。现在我想将此数组传递给我的视图文件中使用的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>

1 个答案:

答案 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 %>];