2013-03-27 3 views
0

렌더링하지, 내가 명명 된 경로가 : 당신이 볼 수 있듯이동적 라우팅 그래서

match 'ip/get/:ip' => 'ip_addresses#show', :via => :get 

, 내가 IP를하고 싶습니다를 (이후 '수') 동적으로,하지만 난 라우팅 오류가 계속 내가 그것을 시험해 볼 때.

root  /     ip_addresses#index 
ip_add POST /ip/add(.:format)  ip_addresses#create 
     GET /ip/add(.:format)  ip_addresses#new 
ip_all GET /ip/all(.:format)  ip_addresses#index 
     GET /ip/get/:ip(.:format) ip_addresses#show 
     DELETE /ip/all(.:format)  ip_addresses#destroy 

그리고 여기 내 show 행동입니다 : 여기 내 노선이다

def show 
    IpAddress.find(params[:id]) 
end 

편집 : 라우팅 오류 : I 가이드 (에서 외부에서 레일 라우팅을 읽은

ActionController::RoutingError (No route matches [GET] "/ip/get/1.2.3.4"): 

http://guides.rubyonrails.org/routing.html)하지만 자연스럽게 나는 뭔가를 간과 할 수 있습니다. 어떤 도움을 주셔서 감사합니다. 감사!

+0

성취하고자하는 바가 무엇인지 설명해 주시겠습니까? 코드와 경로를 살펴보면이 문제에 대한 좋은 접근 방법이 아닌지 의심 스럽습니다. 이것은 당신의 대답에 직접적인 대답은 아니지만, 같은 것을하는 더 깨끗한 코드를 제안 할 수 있습니다. – Aleks

+0

받은 오류를 공유 할 수 있습니까? – KULKING

+0

Aleks,이 방법은 훨씬 깔끔할 수 있다는 것에 동의하지만 기본적으로 RESTful 인 경로를 요청하고 #show, dynamic의 경우에는 코드 연습을 완료하고 있습니다. 제공된 코드에 대한 제안 사항이 있으시면 언제든지 추가하십시오! – aceofbassgreg

답변

2

귀하의 질문에 대한 답변은 귀하가 제출 한 기사에 있습니다.

부분을 살펴 보자이 예에서

By default dynamic segments don’t accept dots – this is because the dot is used as a separator for formatted routes. If you need to use a dot within a dynamic segment add a constraint which overrides this – for example :id => /[^/]+/ allows anything except a slash.

봐 : 당신의 예에 따라서

match ':controller(/:action(/:id))', :controller => /admin\/[^\/]+/ 

내가 믿는 그것은 다음과 같습니다 또한

match 'ip/get/:ip' => 'ip_addresses#show', :id => /[^/]+/ , :via => :get 

변경 params[:id] to params[:ip]

+0

Oooooooooh, 나는 그 부분을 더 일찍 읽고 그것을 지금 읽고 생각하고있었습니다. 그러나 나는 DOTS를 가지고 있지 않습니다. 콜론을 점으로 계산하지 않으면 "IP 주소에 점이 있다는 사실을 알게되었습니다. 오. 내가 너의 제안을 시도하자! – aceofbassgreg

+0

명확히하기 위해, 내 라우팅 동작은 다음과 같아야합니다 :'match 'ip/get/: ip =>/[^ /] + /'=> 'ip_addresses # show', : via => : get'? 가끔 레일 가이드는 조금 더 간결한 편입니다. – aceofbassgreg

+0

또한 웹 페이지'match 'photos/: id'=> 'photos # show', : id =>/[AZ] \ d {5} /'에 예제가 있습니다. ip = get/: ip '=>'ip_addresses # show ', : id =>/[^ /] +/: via => : – Aleks