iDev

RoR에서 routes에 여러 파라미터와 . (dot) 이 포함된 값 받기

KraZYeom 2013. 8. 24. 12:19
반응형

검색어, 위도, 경도. 이 3개의 값으로 검색을 하려고 하는데 문제가 발생. RoR 초보이다보니 뭐가 뭔지 모르는 문제가 문제다. 


일단 처음에는 검색어, 위도, 경도를 , 를 구분자로 다 묶고 콘트롤러단에서 split 을 하려고 하니 . (dot) 문자가 구분자로 먹어서 문제 발생. 

그래서 다시 route에 / 로 구분해서 파라미터 받게 함. 여전이 . 문자로 구분을 못하는 문제. 열심히 구글링을 하니 참조와 같은 글이 있어서 match 에 제약사항(constrains)를 주니 이제 잘 구분은 하지만 html.erb 에서 또 뭔가 에러 발생. 

shop_path('') 에서 shop_path(''. '.', '.') 으로 3개의 파라미터를 받게 . 을 포함해서 경로를 설정하니 이제 에러가 없다. 


* 더 나은 방법이 있을지도...


route.rb 

match 'shops/:id/:latitude/:longitude' => 'shops#list', as: :shop, :constraints => { :latitude => /[^\/]+/, :longitude => /[^\/]+/ }


rake route
shop        /shops/:id/:latitude/:longitude(.:format) shops#list {:latitude=>/[^\/]+/, :longitude=>/[^\/]+/}
html.erb
shop_path('', '.', '.')
controller.rb
params[:id], params[:latitude], params[:longitude]


참조 :

반응형