Jquery rails4自动完成不工作
正在尝试在我的rails 4应用程序中使用自动完成。我试图让我的评论表单在用户输入艺术家名称时自动完成它(如果它已经存在于数据库中) 下面的例子,在我的评论中,我把Jquery rails4自动完成不工作,jquery,ruby-on-rails-4,autocomplete,gem,Jquery,Ruby On Rails 4,Autocomplete,Gem,正在尝试在我的rails 4应用程序中使用自动完成。我试图让我的评论表单在用户输入艺术家名称时自动完成它(如果它已经存在于数据库中) 下面的例子,在我的评论中,我把 class ReviewsController < ApplicationController autocomplete :review, :artist 路线: resources :reviews do get :autocomplete_review_artist, :on => :collectio
class ReviewsController < ApplicationController
autocomplete :review, :artist
路线:
resources :reviews do
get :autocomplete_review_artist, :on => :collection
end
在我的审查表顶部:
<%= form_for(@review) do |f| %>
<% f.autocomplete_field :artist, autocomplete_review_artist_reviews_path %>
及覆核表格
<%= form_for(@review) do |f| %>
<% f.autocomplete_field :artist, autocomplete_artist_name_reviews_path %>
在
资产/javascripts
中创建了一个artist.js.erb
,内容是:$(函数(){
变量=
$(“#艺术街景”)。自动完成({
资料来源:艺术家
});
});代码>
包括在视图中。使用include\u javascript\u标记
提供了需要自动完成的字段id:“artistReview”
application.js中分别需要jquery ui
、//code.jquery.com/jquery-1.10.2.js
和//code.jquery.com/ui/1.10.4/jquery ui.js
。这就解决了这个问题,需要进行大量的样式设计,不过我认为在JS阵列中进行样式设计可以获得更好的效果,从而提高响应速度。
为此,需要使用.as_json方法在控制器上呈现一个变量
因此,在控制器中(参数是说明性的):
鉴于:
<%= f.text_field :somefield %>
在JS中(您不能将其放在应用程序文件中,甚至不能放在html中):
$('#somefield')。自动完成({source:'});
您可以看到,在这种情况下,ajax加载时间可能会使您的使用体验变得更糟,这一点甚至更容易,但也会阻止ajax加载时间
希望能有所帮助。其他行已经在那里了,很抱歉不清楚,还有其他建议吗?文档似乎非常少,所以我很难找到我的问题。我在上面添加了它,非常标准。这里和他们的文档的唯一区别是,他们将艺术家放在一个单独的模型中,正如你的评论中的艺术家一样。试试看。事实上,这是更好的做法,创造了一个有很多关系,艺术家有很多评论。试过了,还是没用,更新了原始帖子
class ArtistsController < ApplicationController
before_action :set_artist, only: [:show, :edit, :update, :destroy]
autocomplete :artist, :name
resources :reviews do
get :autocomplete_artist_name, :on => :collection
end
<%= form_for(@review) do |f| %>
<% f.autocomplete_field :artist, autocomplete_artist_name_reviews_path %>
@autocompleteArr = Object.pluck(:property).as_json
<%= f.text_field :somefield %>
$('#somefield').autocomplete({source: '<%=raw @autocompleteArr %>'});