在我的模型中我有:
class Song < ActiveRecord::Base
belongs_to :artist
def self.default_scope
includes :artist
end
def self.search query
if query
where "title LIKE :query OR artists.name LIKE :query", query: "%#{ query }%"
else
where nil
end
end
end
Run Code Online (Sandbox Code Playgroud)
在我的控制器中:
def index
@songs = Song.search(params[:search])
respond_with(@songs)
end
Run Code Online (Sandbox Code Playgroud)
当我搜索时,我收到以下错误:
Mysql2::Error: Unknown column 'artists.name' in 'where clause': SELECT `songs`.* FROM `songs` WHERE (title LIKE '%my search%' OR artists.name LIKE '%my search%' OR albums.name LIKE '%my search%')
Run Code Online (Sandbox Code Playgroud)
我做错了什么?,我认为include方法会自动进行连接.