我似乎在 capybara 的 page 方法和 Kaminari 的 page 方法之间存在某种冲突。
这就是我的猜测,无论如何,这是错误:
Failure/Error: before { sign_in_as user }
ActionView::Template::Error:
wrong number of arguments (1 for 0)
# ./app/models/feed.rb:9:in `microposts'
[Rest of the backtrace]
代码示例:
class Feed
def microposts(opts = { urgent: false })
urgent = opts[:urgent]
p Microposts.where(id: 1).page # <Capybara::Session>
p Microposts.where(id: 1).page(1) # Error
end
end
如果我删除分页,测试工作正常。
我不明白这是怎么可能的,我猜 Capybara 正在将“page”方法添加到 Object 范围,但是随着 Kaminari 将其page
方法添加到 ActiveRecord::Base (如果我没记错的话)它应该覆盖 Capybara 的方法。
我没有看到有人遇到这种麻烦,怎么可能?
谢谢。