2014-12-02 46 views
0

在我的rails APPI有四種型號(比如A,B,C,d,E和F)嵌套的聯接聲明Rails應用程序

  • 一個屬於B
  • B有很多銫
  • C屬於d
  • d屬於E和F

我試圖建立查詢,如下所示

scope = A.joins(:b, { b: [:cs, {cs: [:d, {d: [:e,:f] } ] } ] }) 

但它不工作。錯誤消息是schema cs (plural of c) does not exist。我正在使用Postgresql

+0

不要忘記:'連接(:c)'然後'連接(:d)' – 2014-12-02 09:00:30

+0

我在哪裏添加它? – Tiamon 2014-12-02 09:07:22

+0

你能顯示結果查詢嗎? – 2014-12-02 09:26:08

回答

1

好吧,好像你在C模型中缺少B參考(b_id)。 C需要知道它屬於哪個B。之後,你可以簡化查詢到這個:

A.joins(b: {cs: {d: [:e, :f]}}) 
+0

我有參考(沒有它的應用程序將無法正常工作)。但感謝更短的形式,雖然我仍然有相同的錯誤信息 – Tiamon 2014-12-02 09:15:55

+0

這很奇怪。它適用於我https://gist.github.com/anonymous/4a91183837d10ecbb7bf – 2014-12-02 09:19:03

+0

錯誤是在where子句。 scope.where(「lower(cddescription)like?」,「%#{params [:description]}%」) – Tiamon 2014-12-02 09:44:10