我有一个具有简单层次结构的 rails 3.2 应用程序:一个用户有很多客户,一个客户有很多发票。
我希望用户通过执行Client.by_user(current_user)
和仅使用范围查看他们自己的客户和发票Invoice.by_user(current_user)
。对于客户,我有这个,效果很好:
scope :by_user, lambda { |user| where(user_id: user.id) }
但是,如果我尝试相同的发票
scope :by_user, lambda { |user| where(client.user_id => user.id) }
它失败了,告诉我undefined local variable or method 'client'
。
我究竟做错了什么?我不想将 user_ids 添加到发票中。