Rails Activerecord .joins上的不明确的列名

时间:2015-05-15 14:33:25

标签: ruby-on-rails ruby activerecord

这是我的代码。如果我在:搜索字段中有某些内容,或者如果我在: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)

2 个答案:

答案 0 :(得分:3)

只需在数字前加上表格名称

例如:

OnTouchListener

答案 1 :(得分:0)

我猜测你的suppliers表和products表都有一个名为" number"的列。老实说,您最好立即运行迁移来更改列名称(可能是supplier_num / product_num),因为保持它的通用性为" number"可能会让你头疼。