奇怪的遗失'dir?'方法

时间:2012-08-19 14:28:53

标签: ruby-on-rails ruby cucumber

我最近开始在我的黄瓜测试中看到一个奇怪的错误。不幸的是,我无法追溯它何时推出。

的不同地方有许多错误
undefined method `dir?' for #<Order:0x000000098447f8> (NoMethodError)

我在代码中的任何地方都没有(并且没有)方法,名为'dir?'

任何想法可能会调用它以及如何解决这个问题?

更新。正常查看页面时,代码将失败并显示相同的消息。代码是:

def index
  search = {"meta_sort" => "id.desc"}.merge(params[:search] || {})
  @search = @company.orders.search(search)
  @orders = @search.paginate(:page => params[:page], :per_page => 20).includes(:premise).includes(:address)
end

其他地方的一些几乎相同的代码可以正常工作。

def index
  @search = @company.users.shoppers.search(params[:search])
  @customers = @search.paginate :page => params[:page], :per_page => 20
end

我尝试更改非工作代码以模仿工作代码,但这没有任何区别。搜索方法由元搜索宝石提供,我们一直在愉快地使用它。

更新2:

似乎错误出现在引入delayed_jobworkless宝石的情况下。无法工作取决于Rush,它有'dir?'方法。我仍然不知道为什么故障会在那里被裁剪。

1 个答案:

答案 0 :(得分:1)

这是在Rush中定义的搜索方法的名称冲突,并使用 dir?和meta_search gem搜索方法

使用 元搜索 方法代替搜索进行meta_search搜索