2011-10-10 74 views
1

這裏耙路線是輸出耙路線的URL之一與多個參數

bug_info /bugs/:pr/:scope/info(.:format)  {:controller=>"bugs", :action=>"info"} 

裏面的erb視圖如果我打電話bug_info_path(:PR => 1,:範圍=> 2),該視圖給我一個錯誤說

沒有路由匹配{:範圍=> 「2」,:動作=> 「信息」,:控制器=> 「錯誤」, :PR => 「1」}

我在做什麼錯在這裏

match 'bugs/:pr/:scope/info' => 'bugs#info', :as=>:bug_info 
+0

嘗試重命名:範圍,只是猜測它可能會碰到一些鐵軌參數 –

+0

確保BugsController有一個信息實例方法? –

+0

我把它命名爲「abcdef」,仍然有相同的錯誤 – kiran

回答

1

非常奇怪。我通過生成一個新的rails應用程序進行測試,並填充你的東西,它似乎工作正常。這是我得到的。 (這是Rails 3.0.7)。

配置/ route.rb

Railstest::Application.routes.draw do 
    match 'test' => 'bugs#test', :as=>:bug_test 
    match 'bugs/:pr/:scope/info' => 'bugs#info', :as=>:bug_info 
end 

應用程序/控制器/ bugs_controller.rb

class BugsController < ApplicationController 
    def test 
    end 

    def info 
    end 
end 

應用/視圖/錯誤/ test.erb

<%= bug_info_path(:pr=>1,:scope=>2) %> 

應用/視圖/ bug/info.erb

<%= params %> 

當我瀏覽/test我得到這樣的:

/錯誤/ 1/2 /信息

當我瀏覽到/bugs/1/2/info

{ 「控制器」=>」 bug「,」action「=>」info「,」pr「=>」1「,」scope「=>」2「}

Maybe you co您也可以嘗試使用最少的Rails應用程序,然後添加內容直到我休息。

+0

我打算用最小的應用程序來測試它,並測試它 – kiran

+0

不,還是一樣的錯誤。我正在運行rails 3.1。然而,而不是:pr /:範圍,如果我提供* pr/*範圍,那麼它的運行良好沒有任何錯誤 – kiran

+1

我明白了。在我的例子中,我使用了像/bugs/1/1.1/info這樣的點的動態段。所以它失敗了。我添加了一個約束範圍接受點,它的工作 – kiran