Ruby on rails Rails非散列条件丢失表引用
在Rails查询中使用数组或字符串条件时,例如: 位置模型中的范围:Ruby on rails Rails非散列条件丢失表引用,ruby-on-rails,hash,conditional-statements,Ruby On Rails,Hash,Conditional Statements,在Rails查询中使用数组或字符串条件时,例如: 位置模型中的范围: scope :name_like, ->(keyword) {where("name ilike ?", keyword)} 当将它与同样具有列名称的联接表一起使用时,它将出现问题。就像: Location.joins(:users).name_like('main') 它将在名称处报告不明确的列名冲突 我应该如何解决这个问题,谢谢 您需要像这样使用 scope :by_name, -> { joins(:us
scope :name_like, ->(keyword) {where("name ilike ?", keyword)}
当将它与同样具有列名称的联接表一起使用时,它将出现问题。就像:
Location.joins(:users).name_like('main')
它将在名称
处报告不明确的列名冲突
我应该如何解决这个问题,谢谢 您需要像这样使用
scope :by_name, -> { joins(:users).where("users.name like '%?%'",'FirstName' ) }
请参阅下面的链接
更改您的名称(如
范围)以使用位置的显式名称
。我建议更改如下:
scope :name_like, -> (keyword) { where("locations.name ilike ?", keyword) }