2014-04-02 182 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然后有什么问题? –