如何将javascript变量设置为Rails中模型的列表?
我有一个rails应用程序,其中我有一个如何将javascript变量设置为Rails中模型的列表?,javascript,ruby-on-rails,jquery-ui,Javascript,Ruby On Rails,Jquery Ui,我有一个rails应用程序,其中我有一个Post模型,我使用acts\u as\u taggable\u ongem作为标记功能。我正在处理自动完成标记建议,并希望从我的Post模型中为列表设置一个javascript变量。我正在使用jqueryuiautocomplete来实现自动完成功能 这是我的\u form.html.erb,其中有一个表单字段,用于接受特定帖子的标记 <%= form_for Post.new do |f| %> <div class="form-
Post
模型,我使用acts\u as\u taggable\u on
gem作为标记功能。我正在处理自动完成标记建议,并希望从我的Post
模型中为列表设置一个javascript变量。我正在使用jqueryui
autocomplete来实现自动完成功能
这是我的\u form.html.erb
,其中有一个表单字段,用于接受特定帖子的标记
<%= form_for Post.new do |f| %>
<div class="form-group">
<%= f.label :message, "Post Your Thoughts:", class: "col-md-4 control-label message-label" %>
<%= f.text_area :message, class: "form-control" , rows: "7" %>
</div>
<div class="form-group">
<%= f.label :tag_list, "Tags:", class: "col-md-4 control-label message-label" %>
<%= f.text_field :tag_list, class: "form-control", placeholder: "Enter tags separated by Comma" %>
</div>
<%= f.submit "Submit Post" , class: "btn btn-info" %>
使用从服务器获取标记列表
现在我的问题是,考虑到目前为止我在使用Ajax和获取标记列表方面遇到了麻烦,这种获取标记列表的方法有什么问题吗 尝试获取哈希中的标记列表,如下所示:
var availableTags = "<%== Hash[tags].to_json %>"
var availableTags=“”
在这种情况下,我建议使用更干净的溶液。如果您的标记达到几千个条目,它总是加载到您的html结果中,我发现在性能和带宽方面,这是一个糟糕的解决方案(即使这显然是可缓存的,也不使用缓存)。您应该通过AJAX加载它,或者使用在Rails和JS之间提供交换的gem,如:
例如,您可以这样使用Gon:
在控制器中:
gon.available_tags = tags
在jQuery UI脚本中:
var availableTags = gon.available_tags
还有一个RailsCast:嗨,谢谢你的回答,你的解决方案很有效!!但是正如@wiesion所建议的,我正在尝试向它添加ajax功能。
gon.available_tags = tags
var availableTags = gon.available_tags