我以前写的一个多对多的关系用:through 实现如下:
has_many :contacts, :through => :connections,
:conditions => "status='#{Connection::ACCEPTED}'"
运行后 在输出的页面里 转换成SQL语言是 :
SELECT users
.* FROM users
INNER JOIN connections ON users.id = connections.contact_id WHERE ((connections
.user_id = 3) AND ((status='1')))
没有报错
然后我又写了一个多对多的关系
has_many :exchanges, :through => :excbooks,
:conditions => "status='#{Excbook::ACCEPTED}'"
翻译过来的SQL语句是
SELECT books
.* FROM books
INNER JOIN excbooks ON books.id = excbooks.exchange_id WHERE ((excbooks
.book_id = 2) AND ((status='0')))
却报错:
ActiveRecord::StatementInvalid: Mysql::Error: Unknown column 'excbook.status' in 'where clause'
上下两个逻辑上都是一样的为什么上一个不报错 这个报错呢?
我第一个是在MYSQL5.0 运行的 下一个是在5.1下 难道是版本的差异?