gpt4 book ai didi

ruby - Kaminari 和 Capybara 冲突

转载 作者:数据小太阳 更新时间:2023-10-29 07:30:41 26 4
gpt4 key购买 nike

我觉得 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 的。

我没看到有人遇到这种麻烦,怎么可能?

谢谢。

最佳答案

我在 Capybara 2.x 上遇到了同样的问题

我的功能规范在 spec/feature 目录中。通过阅读 Capybara 文档,我意识到如果您使用功能目录,则无需在 spec_helper 中包含 Capybara::DSL。它已经包含在内。

如果您在 spec_helper包含 Capybara::DSL 会发出警告,它会污染全局命名空间,这正是它不是一个好主意的原因!

Check out this rspec-rails page on Capybara for details

关于ruby - Kaminari 和 Capybara 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11848688/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com