【问题标题】:rails search with texticle: private method `scan' called for #<Array:0x103f03f08>rails search with texticle:为#<Array:0x103f03f08>调用私有方法`scan'
【发布时间】:2010-08-03 18:35:42
【问题描述】:

我有一个 Rails 应用程序,我想用tenderlove 的文本使其可搜索。在控制台中它工作正常,但在我的应用程序中我收到这样的错误:

/opt/local/lib/ruby/gems/1.8/gems/texticle-1.0.3/lib/texticle.rb:65:in `index'
/Users/vjmayr/.gem/ruby/1.8/gems/activerecord-2.3.8/lib/active_record/named_scope.rb:92:in `call'
/Users/vjmayr/.gem/ruby/1.8/gems/activerecord-2.3.8/lib/active_record/named_scope.rb:92:in `named_scope'
/Users/vjmayr/.gem/ruby/1.8/gems/activerecord-2.3.8/lib/active_record/named_scope.rb:97:in `call'
/Users/vjmayr/.gem/ruby/1.8/gems/activerecord-2.3.8/lib/active_record/named_scope.rb:97:in `search'
/Users/vjmayr/softwareclick/app/controllers/categories_controller.rb:12:in `search'

...

def search
          @allproducts = Product.search(params[:search], :conditions => ['category_id in (?)', @category.subtree_ids]) #line 12
        if params[:search]
           @products = Product.search(params[:search], :conditions => ['category_id in (?)', @category.subtree_ids]).paginate :per_page => 30, :page => params[:page] #line 14
         else
           @products = []
         end

         respond_to do |format|
           format.html # show.html.erb
           format.xml  { render :xml => @category }
         end
  end

有人可以指出问题的根源吗?我被卡住了……

谢谢!

附:第 12 行的奇怪之处在于,它不应该被使用,因为我在参数中进行了搜索....当我禁用它时,错误指的是第 14 行

【问题讨论】:

  • 请在第 12 行从 categories_controller 粘贴代码。
  • 嗨,弗拉德,我们开始吧(希望格式看起来不是很疯狂):......好吧,看起来很疯狂,我把它添加到问题中。谢谢,瓦尔

标签: ruby-on-rails search full-text-search private-methods


【解决方案1】:

试试这个:

Product.search(params[:search]).all :conditions => ...
# this also works
Product.search(params[:search]).paginate :conditions => ...

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2013-11-26
    • 1970-01-01
    • 2015-12-31
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    相关资源
    最近更新 更多