Rails Activerecord .joins 上的列名不明确

DRD*_*DRD 0 ruby activerecord ruby-on-rails

这是我的代码。如果我在 :search 字段中有内容,或者在 :supplier 字段中有内容,它就可以正常工作,但是如果我在这两个字段中都有内容,我会得到“不明确的列名 'NUMBER'”。有没有办法选择AS之类的?

@date_from = params[:date_from]  ||     Date.today.beginning_of_month.strftime('%m/%d/%Y')
@date_to = params[:date_to] ||  Date.today.strftime('%m/%d/%Y')
q = "%#{params[:search]}%"

@products = Product.where("DISCONT = ? AND NONPRODUCT = ?" ,0,0)
@products = @products.where('NUMBER like ?' ,q) if params[:search].present?
@products = @products.joins(:supplier_items).where('SUPPLIER = ?' ,params[:supplier]) if params[:supplier].present?
@products = @products.paginate(page: params[:page], per_page: 25)
Run Code Online (Sandbox Code Playgroud)

Joh*_*gle 6

只需在数字前面加上表名

例如:

@products = Product.where(:discount => 0, :nonproduct => 0)
@products = @products.where('products.number like ?', query)
Run Code Online (Sandbox Code Playgroud)