【发布时间】:2019-08-01 03:06:03
【问题描述】:
我正在开发我的 Rails 应用程序中的自动完成功能,并遵循 How to set-up jquery-ui autocomplete in Rails 的回答。当我在input 中输入内容时,会出现此错误:ActiveRecord::RecordNotFound (Couldn't find User with 'id'=json)? (:term 仍然等于我输入的任何内容)为什么会有id=json?
<div>
<input id="select_user" />
<input id="link_user_id" name="link[user_id]" type="hidden"/>
</div>
<script type="text/javascript">
$(function() {
$('#select_user').autocomplete({
minLength: 1,
source: '<%= user_path(:json) %>',
})
.data("ui-autocomplete")._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "ui-autocomplete-item", item )
.append( "<a>" + item.user.name + "</a>" )
.appendTo( ul );
};
});
</script>
用户控制器:
def index
if params[:term]
@users = User.find(:all, :conditions => ['name LIKE ?', "%#{params[:term]}%"])
end
respond_to do |format|
format.html
format.json { render :json => @users.to_json }
end
end
【问题讨论】:
-
您使用的是什么版本的导轨?较新版本的 Rails 不支持 User.find(:all) 尝试
User.where() -
@Vbp,它是 5.0.1
-
试试这样的
User.where("name LIKE ?", "%#{params[:term]}%") -
刚刚尝试过,但得到相同的错误
Couldn't find User with 'id'=json。我想知道它是否与这一行有关 'source: ''` -
这看起来像是一个不同的错误,它说找不到字体而不是用户?
标签: jquery ruby-on-rails