我最近由當前應用程序升級到Rails 3.2.8,無法通過一些測試。我做了一個幫助器方法,將某些散列與params散列合併,並創建一個指向當前頁面的鏈接。我使用的技術見於:link_to the current page plus/merged with a param。Rails 3.2.8和rspec,link_to當前路徑,params散列沒有正確轉換
這裏是一個精簡版:
describe "simple_link" do
it { simple_link.should == "<a href=\"/assets\">Page</a>" }
end
其中又傳遞3.2.6:
def simple_link
link_to "Page", params.merge(:c => nil)
end
那我就用類似測試。
但是,現在我收到rspec錯誤No route matches {:c=>nil}
。 Rails,rspec或水豚都認爲散列就是路線。如果我添加一個適當的路線,如:users_path
,那麼url_for似乎拿起散列。在瀏覽器上測試,一切正常,沒有錯誤。我做錯了什麼,是在3.2.8中改變了嗎?還是這是一個錯誤?
剝離代碼並不能幫助我們。 – sevenseacat
我從提供的代碼中獲得與我真正的幫助器方法相同的錯誤。 –
可能有關?:https://github.com/rails/journey/issues/42雖然這發生在我升級*到* rails 3.2.6時。這個解決方案(至少對我來說)是爲我的Gemfile添加一行代碼:'gem'journey','1.0.3',它可以回溯到1.0.3版。 –