我最近通过当前应用程序升级到 Rails 3.2.8 并且无法通过一些测试。我做了一个辅助方法,将某些哈希与参数哈希合并并创建到当前页面的链接。我使用了我在上面看到的技术:link_to 当前页面加上/合并了一个参数。
这是一个精简版:
def simple_link
link_to "Page", params.merge(:c => nil)
end
然后我会用类似的东西来测试它:
describe "simple_link" do
it { simple_link.should == "<a href=\"/assets\">Page</a>" }
end
这是在 3.2.6 中通过的。
但是,现在我收到 rspec 错误No route matches {:c=>nil}
。Rails、rspec 或 capybara 都认为哈希是路由。如果我添加正确的路线,例如:users_path
,那么 url_for 似乎会拾取哈希。在浏览器上测试,一切正常,没有错误。我是不是做错了什么,在 3.2.8 中是否发生了一些变化,或者这是一个错误?