dingr 2009-12-27 16:22
浏览 145
已采纳

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下 难道是版本的差异?

  • 写回答

1条回答 默认 最新

  • iteye_13826 2009-12-30 16:03
    关注

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

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 请问Ubuntu要怎么安装chrome呀?
  • ¥15 视频编码 十六进制问题
  • ¥15 Xsheii7我安装这个文件的时候跳出来另一个文件已锁定文件的无一部分进程无法访问。这个该怎么解决
  • ¥15 unity terrain打包后地形错位,跟建筑不在同一个位置,怎么办
  • ¥15 FileNotFoundError 解决方案
  • ¥15 uniapp实现如下图的图表功能
  • ¥15 u-subsection如何修改相邻两个节点样式
  • ¥30 vs2010开发 WFP(windows filtering platform)
  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊