问题描述
|
我正在尝试使用jQuery插件自动完成功能自动填充文本,但我遇到了一些问题,视图中没有生成列表,并且在firbug中出现错误:
500 Internal Server Error,<h1>Template is missing</h1>
<p>Missing template messages/query with {:handlers=>[:erb,:builder,:rjs,:rhtml,:rxml],:locale=>[:en,:en],:formats=>[:json,:js,"*/*"]} in view paths "/Users/aldeirm2/Desktop/CMS2/app/views"</p>.
我猜这与我试图返回json对象的方式有关吗?
这是JavaScript代码:
$(function() {
var cache = {},lastXhr;
$( \"#username\" ).autocomplete({
minLength: 1,source: function( request,response ) {
var term = request.term;
if ( term in cache ) {
response( cache[ term ] );
return;
}
lastXhr = $.getJSON( \"/usernames\",request,function( data,status,xhr ) {
cache[ term ] = data;
if ( xhr === lastXhr ) {
response( data );
}
});
}
});
});
HTML代码:
<label for=\"username\">To:</label> <input id=\"username\" /><br />
控制器中的搜索方法(路由到使用的\“ / search \”):
def query
@users = User.auto_fill(params[:term])
logger.debug \"This is the USERS\" + @users.first.username
return @users.collect{|x| {:label => x.name,:id => x.id}}.to_json
end
模型中的auto_fill方法:
def self.auto_fill(search)
query = \"%#{search}%\"
where(\"username like ?\",query)
end
任何帮助将非常感谢。
解决方法
我认为因为您没有渲染任何东西,所以Rails试图找到要渲染的查询模板。尝试:
render :json => @users.collect{|x| {:label => x.name,:id => x.id}}
或类似的规定
,该错误告诉您确切的错误。您缺少ѭ6的模板。您需要先解决该问题。在您的控制器/动作中执行以下操作
render :json => { :success => \'your info here\' }