我最近开始在我的黄瓜测试中看到一个奇怪的错误。不幸的是,我无法追溯它何时推出。
在
的不同地方有许多错误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_job和workless宝石的情况下。无法工作取决于Rush,它有'dir?'方法。我仍然不知道为什么故障会在那里被裁剪。
答案 0 :(得分:1)
这是在Rush中定义的搜索方法的名称冲突,并使用 dir?和meta_search gem搜索方法
使用 元搜索 方法代替搜索进行meta_search搜索