2

我在文件夹和电子邮件之间有一个连接表,并且我的连接表模型中也有一个 user_id。在本质上:

class Folder < ActiveRecord::Base
  has_many :folder_emails,
           :class_name => "FolderEmail"

  has_many :emails, ->(user) { where user_id: user.id }, :through => :folder_emails
end

所以,当我尝试做时Folder.find(1),我得到了错误: ArgumentError: wrong number of arguments (3 for 1..2)

我是 -> 范围块语法的新手,我无法理解为什么会出现此错误。

4

1 回答 1

0

这有点令人困惑,您不能将用户 ID 传递给范围。范围只能在 where 中使用已定义的一组已知值。

于 2013-09-08T09:52:54.287 回答