以下のようなモデルがあります(適当に考えたんですが、SNS的な何かを想定してみましょう)。
1 2 3 4 5 6 7 8 9 10 11 12 | class Post < ActiveRecord::Base belongs_to :member end class Member < ActiveRecord::Base belongs_to :job has_many :posts end class Job < ActiveRecord::Base has_many :members end |
「日付が2010年2月6日で、かつ書いた人の職業名が”Engineer”の人の日記一覧を抽出したい」んですけど、どうしましょう。なお、date属性はPostクラスに、job_name属性はJobクラスにくっついています。
なので、以下では全然ダメです。
1 2 3 4 5 6 | Post.find(:all, :conditions => { :date => Date.new(2010, 2, 6), :job_name => "Engineer" }, :include => {:member => :job}) |
SQL (0.2ms) SET NAMES 'utf8'
SQL (0.6ms) SET SQL_AUTO_IS_NULL=0
Post Load (0.0ms) Mysql::Error: Unknown column 'posts.job_name' in 'where clause': SELECT * FROM `posts` WHERE (`posts`.`date` = '2010-01-31' AND `posts`.`job_name` = 'Engineer')