我在使用rails3中的連接時遇到了問題。Rails3加入協會
有兩種模式:
class User < ActiveRecord::Base
end
class Post < ActiveRecord::Base
belongs_to :master,class_name: 'User'
end
用戶模型有「姓名」字段,當我試圖找到一些帖子是這樣的:
Post.joins(:master).where("master.name like '%mike%'")
它出錯,日誌顯示如下:
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'master.name' in 'where clause': SELECT `posts`.* FROM `posts` INNER JOIN `users` ON `users`.`id` = `posts`.`master_id` WHERE (master.name like '%mike%')
我想也許我會給用戶的別名,但如何?
我知道它會像這樣:
Post.joins("join users master on posts.master_id=master.id").where("master.name like '%mike%'")
但有沒有更好的辦法?任何機構善意幫助我解決這個問題?
嘗試做Post.master.where(「name like'%mike%'」)或Post.joins(:master).where(「name like'%mike%'」) –
它確實有效,但如果Post發生有'名稱'屬性',它會再次失敗。無論如何,它解決了我目前的問題。謝謝 – sam