2011-11-20 4 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 
위한 제어기 + 뷰를 만들어 691,363,210

와 나는 routes.rb

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

을 추가하고 단순히에 매개 변수를 전달,

<%= @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-as-a-parameter – Everyman

답변

0

이 경로 (레일 버전 3.x 가정)보십시오 :

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

완벽합니다. 감사! – Bernd