2014-04-02 166 views
0

有以下類:軌道4作用域與各協會

class OrderItem < ActiveRecord::Base 
    scope :drinks, -> { where(item.submenu: Submenu.last) } 
end 

正如你所看到的,我想所有的訂單項目,其中訂單項目是不是在某一級菜單(在這種情況下,在例如上一個子菜單)。但是這個代碼不起作用。錯誤:

syntax error, unexpected ':' scope :drinks, -> { where(item.submenu: Submenu.last) } 

我該如何解決它?

回答

2

那麼,你不能像這樣使用帶點的符號(item.submenu:),這就是爲什麼它會拋出SyntaxError。爲了使它工作,你可以加入你的協會,並查詢它:

scope :drinks, -> { joins(:item).where(items: {submenu_id: Submenu.last}) } 
+0

對不起,但它不適用於我。 – malcoauri

+0

@malcoauri你能更具體嗎? –

+0

@malcoauri然後有什麼問題? –