Railscasts 102中的index.js.erb问题(自动完成):数据未显示在localhost上的listing.js中

时间:2012-10-10 19:03:41

标签: ruby-on-rails search autocomplete

Rails 3.2.5 app。很简单,只有一个型号:列表

列有网站,网址,医生,评论和日期。

在剧集的第9分钟,他转到localhost:3000 / cateogories.js,并以列表形式在页面上弹出类别。

在我的情况下,它将是listings.js

我在JS控制台中没有错误,浏览器只是空白。在我的终端,它说

开始GET" /listings.js"对于127.0.0.1在2012-10-10 13:20:41 -0500
由ListingsController处理#index为JS
渲染列表/ index.js.erb(0.1ms)
在8ms完成200 OK(浏览次数:7.7ms | ActiveRecord:0.0ms)

我的index.js.erb文件(如果我错了,请纠正我),进入观看/列表,代码是:

<%= auto_complete_result @listings, :website %>

我希望自动完成设置:url,:website,:comments和:doctor,但这不是我现在主要关心的问题。只是想让它运作起来。

listing_controller.rb中的我的索引是

def index
  @listings = Listing.search(params[:search_text]) 
    respond_to do |format|
      format.js
  end
end

我的application.html.erb文件包含

<%= javascript_include_tag :defaults %>

而且我不确定在轨道3.2中是否有必要(虽然它已经在轨道广播中列出,但它有点旧)。

任何想法为什么localhost:3000 / listings.js是空白的(我在数据库中有5个列表)?任何输入都表示赞赏。谢谢:))

1 个答案:

答案 0 :(得分:1)

只需使用所有商品:

def index
  @listings = params[:search_text].nil? ? Listing.all : Listing.search(params[:search_text])
    respond_to do |format|
      format.js
  end
end

我认为因为您正在使用搜索,所以您不能只访问该页面并查看没有params[:search_text]的结果,当然这取决于您是如何处理search方法的。您可以通过检查param来处理它,但最好在搜索实现中处理它。上面的代码应该可以工作。