Rails의 "Routes.rb"파일을 엉망으로 만들어야합니까?
-
03-07-2019 - |
문제
나는 결코 만지지 않습니다 routes.rb
전화를 넘어서 map.root
기본 경로를 설정합니다. 나는 항상 양식의 URL을 사용하는 것에 만족했습니다 ...
/controller/action/perhaps_an_id
그리고 그것은 잘 작동합니다.
이것이 나를 나쁜 사람으로 만들까요? 나는 완전히 멋진 것을 놓치고 있습니까?
편안한 디자인을 채택하려고한다면 어떨까요? 그것이 내가 편집해야한다는 것을 의미할까요? routes.rb
아니면 계속해서 그것을 무시할 수 있습니까?
(나는 Rails Way 에서이 주제를 읽으려고 노력했지만 견딜 수 없었습니다.)
해결책
기본 스캐 폴딩으로 리소스를 생성하면 Routes.rb에 RESTFul 라우팅이 포함됩니다.
스캐 폴딩을 사용하지 않는 경우 작동하는 이유는 기본적으로 하단의 기본 경로 때문입니다.
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
나는 생산 응용 프로그램을 위해 이들을 제거하고 대신 노출 된 자원 만 노출되어 있는지 확인하는 것이 가장 좋습니다. Rails 2.2를 사용하면 Map.Resources에서 RESTFul 방법을 다음과 같이 제한 할 수도 있습니다.
map.resources :posts, :only => [:index, :show]
map.resources :comments, :except => [:edit]
중첩 된 자원, 노선 등으로 할 수있는 멋진 일들도 있습니다. 문서에는 많은 예가 있습니다 (http://www.railsbrain.com/api/rails-2.2.2/doc/index.html?a=m000255&name=resources)
다른 팁
특정 컨트롤러 및 작업 등으로 이동하는 마케팅 부서 (예 : Mycoolsite.com/free-trial)에 맞춤형 명명 경로를 만들 수 있습니다.
Ryan Bates는 노선으로 할 수있는 깔끔한 일들 중 일부를 살펴 보는 일련의 스크린 캐스트가 있습니다. http://railscasts.com/tags/14
Restful Design으로 전환하지 않으면 나쁜 사람이되지 않으며 변경할 필요가 없다면 앱을 1.x 방식으로 계속 작성하십시오.
대부분의 Rails 개발자들은 휴식을 취했으며 그것에 대해 매우 행복한 것 같습니다. 나는 여기에 모든 프로 레스트 주장을 반복 할 필요가 없다고 생각합니다.
다음과 같은 경로 파일에 리소스 당 한 줄을 추가해야합니다.
map.resources :posts
당신이 편안하게 가려면, 당신은 경로를 편집해야 할 것입니다 .RB와 같은 자원을 추가하십시오.
map.resources :your_resource
또는 자원을 중첩 한 경우
map.resources :people do |person|
person.resources :ideas do |idea|
ideas.resources :bad_ones
end
end