【发布时间】:2012-11-11 14:14:42
【问题描述】:
直奔问题。 我有一个这样的查询:
@issue_books = current_user.issue_books
@already_issues = @issue_books.taken(params[:id])
其中taken 是一个named_scope,定义如下:
scope :taken, lambda { |book_id| where(returned: false).where(book_id: book_id) }
现在每次我运行这个查询:
@issue_books.taken(params[:id])
我收到 ArgumentError: wrong number of arguments (1 for 0) 错误。
如果我将 taken 重命名为 taken_books 之类的其他名称,似乎一切正常。
所以我的问题是:taken 是 ruby 中的关键字吗?如果没有,谁能解释这种行为?
【问题讨论】:
-
是否在您的模型中定义了任何名为
taken的函数,尤其是 issue_book.rb? -
@AnandVeeramani no man 我知道这件事我没有在
issue_books中定义任何东西
标签: ruby-on-rails ruby lambda named-scope