我在以下查询中遇到以上错误。
@customer= Customer.find(params[:id], :include => [:addresses, :temporary_address], :conditions => ["customer_no= ?", current_user.customer_no])
我认为我搞砸了语法。请帮忙。
答案 0 :(得分:3)
为什么要进行基于ID的查找,然后为其添加条件?
无论哪种方式,如果您想要多个结果,请不要进行find(id)
查询,请使用where()
@customer = Customer.where(:customer_no => current_user.customer_no).include([:addresses, :temporary_address])
如果您仍想使用原始查询运行,请执行以下操作:
@customer = Customer.find_by(:id => params[:id], :customer_no => current_user.customer_no).include([:addresses, :temporary_address])
是的,你在这里使用(非常)旧的ActiveRecord语法:)
答案 1 :(得分:0)
您正在使用旧的ActiveRecord查询接口语法。您是否将旧的Rails应用程序升级到Rails 4?尝试更新的语法:
@customer = Customer.includes(:addresses, :temporary_address).where("customer_no = ?", current_user.customer_no).find(params[:id])