has_many :through :conditions 出错问题 请大家帮忙

我以前写的一个多对多的关系用: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下 难道是版本的差异?

:conditions => "excbooks.status='#{Excbook::ACCEPTED}'"

跨库导致的目标不明 或者默认目标错误