2014-05-22 1 views
2

옵션 매개 변수의 라우팅 및 기본값과 관련되어 있습니다. 경로 감안할 때 :레일 4는 생성 된 URL에 강제로 기본 경로 매개 변수를 포함합니다.

get '/product/:key(/:env(/:version))', to: 'delivery#widget_view', 
    defaults: { env: 'live' }, as: :product_view 

나는 그것을 버전 주면 이해를하고 나뿐만 아니라 그에게 ENV을 제공해야한다. I은 생성 된 URL은

link_to 'view it', key: 'mykey', env: 'live', version: 6 

/product/mykey/6 

한 후 [ENV = 6PARAMS을 만드는 끝이, 그리고 버전

대한 값 I가 제거되지 않으면

때 defaults 또는 make : env 제거()가 요구하는 경우 'live'가 생성 된 URL에 명시 적으로 포함됩니다. 이 지금 내 솔루션이지만, 레일스가 나에게 줄 수있는 곳이있다 : env 내가 제공 할 때 : version? 당신이 env을 거치지 않고 product_view_path를 호출 할 때

get '/product/:key/:env(/:version)', to: 'delivery#widget_view', 
    defaults: { env: 'live' }, as: :product_view 

을 다음과 같이

답변

1

env PARAM이 요구 확인, 기본값은

product_view_path('mykey') => '/product/mykey/live' 

귀하의 질문은 사용됩니다되어 어떻게든지이 가지고 레일 줘 : env 내가 제공 할 때 : version ?. 예, product_view_path를 호출하고 난 당신이 내가 마련했습니다 문제를 오해했다고 생각 env

product_view_path('mykey', version: 6) => '/product/mykey/live/6' 
+0

을 거치지 않고 version를 전달할 수 있습니다. 경로 (default = live)에서 env 매개 변수가 optional로 설정되고 기본값 (env = live)을'link_to'에 제공하면 env 값은 생성 된 링크에 포함되지 않습니다. –

+0

@mr_than 나는 당신이 달성하기를 원하는 것으로 가정한다 : env에 대한 기본값을 설정한다 : env에 대한 값을 지정하지 않으면, 기본값이 사용되어야한다. 만들기 : env 선택적 또는 필수는 중요하지 않습니다. 말이된다? – Hoa

관련 문제