2011-11-20 77 views
0

我的目標僅僅是在索引頁面上顯示兩個可選的URL參數。URL參數的基本路由

0.0.0.0:3000/comparison - >顯示:空比較索引頁

0.0.0.0:3000/comparison/3 - >顯示:

3 

0.0.0.0:3000 /比較/ 3/4 - >顯示:

3 
4 

我創建爲 「比較」

rails generate controller comparison 
控制器+視圖

和我說

match ':comparison/:index(/:a(/:b))' 

routes.rb中並添加同時顯示參數

<%= @a %> 
<%= @b %> 

我的控制器看起來像這樣的index.html.erb,只需轉發參數到查看

class ComparisonController < ApplicationController 
    def index 
    @a = params[:a] 
    @b = params[:a] 
    end 
end 

這樣我得到一個路由錯誤,例如

Routing Error 

No route matches [GET] "/comparison/3/4" 

如何獲得路由權?

+0

是不是真的'匹配 ':比較/:指數(/:A(/:B))' 和''不匹配「比較/:索引(/:a(/:b))「這一刻? –

+0

我改變了它。現在我得到錯誤「ArgumentError:missing:controller」 – Bernd

+0

試試這個 - >通過querystring追上多個ID http://stackoverflow.com/questions/6413077/rails-3-custom-route-that-takes-multiple- IDS作爲參數 – Everyman

回答

0

嘗試這條路線(假設Rails的3.x版):

match 'comparison(/:a(/:b))' => "comparison#index" 
+0

完美。謝謝! – Bernd