使用link_to时不存在的表单参数:remote =>真的和CapyBara

时间:2015-01-30 05:43:08

标签: ruby-on-rails ruby-on-rails-4 rspec capybara poltergeist

我有一个远程link_to定义为

link_to "Publish", resource_path, data: { method: :patch, remote: true, params: { resource:{ published: true } }.to_param }

在浏览器中手动点击此链接时,所有内容都按预期工作,并且正确的参数将被发送到更新操作,一切都很好。

当使用Turnip,RSpec,Capybara和Poltergeist运行测试来复制它时,我没有这样的运气,这是由于表格参数不存在,即:" param缺失或值是空的:"

这是Poltergiest的限制吗?还是配置问题?

测试成功点击此链接,正如预期的那样使用PATCH的HttpMethod调用正确的操作 - 表单中没有参数。

1 个答案:

答案 0 :(得分:0)

参见https://github.com/teampoltergeist/poltergeist/issues/532 ......和https://github.com/ariya/phantomjs/issues/11384

这似乎是一个恶作剧问题。为了使它工作:

  • 仅在数据方法中使用GET或POST
  • 将data-params中的原始http方法设置为_method属性

您的链接:

link_to "Publish", resource_path, data: { method: :post, remote: true, params: { _method: :patch, resource:{ published: true } }.to_param }

......或类似的东西。