나는 admin 섹션과 public 섹션이있는 레일 앱을 개발 중입니다. 공공 부분에서 나는이 '새'의 ID로 show 액션에 해결하는 새로운 조치에 대해 표준 URL을 칠 경우에만 인덱스와 쇼 루트레일 경로를 해결하는 것을 피하는 방법은 무엇입니까?
그러나resources :services, :only => [:index, :show]
를 해결하고자합니다. 즉 http://foo.com/services/new은 "ID가있는 서비스를 찾을 수 없습니다 = 새"오류를 반환합니다. 어쨌든 레일에/서비스/새로운 문제를 해결하지 말라고 말할 수 있습니까?
이미 성공하지
resources :services, :only => [:index, :show], :except => :new
및
resources :services, :except => :new, :only => [:index, :show]
을 시도했습니다. 내 전체 경로 파일 (산세 코멘트) : (요청에 의해)
ETA
MyApp::Application.routes.draw do
resources :services, :only => [:index, :show]
resources :packages,:only => [:index, :show]
get "pages/home"
get "pages/about"
get "pages/help"
root :to => 'packages#index'
namespace "admin" do
get "pages/home"
get "pages/about"
get "pages/help"
resources :services
match "/services/:id/add_to_package/:package_id" => "services#add_package", :as => :add_package_to_service, :via => :post, :id => /\d+/, :package_id => /\d+/
match "/services/:id/remove_from_package/:package_id" => "services#remove_package", :as => :remove_package_from_service, :via => :post, :id => /\d+/, :package_id => /\d+/
resources :packages
match "/packages/:id/add_service/:service_id" => "packages#add_service", :as => :add_service_to_package, :via => :post, :id => /\d+/, :service_id => /\d+/
match "/packages/:id/remove_service/:service_id" => "packages#remove_service", :as => :remove_service_from_package, :via => :post, :id => /\d+/, :service_id => /\d+/
resources :users
root :to => 'pages#home'
end
end
일반적으로 URL을 고려하기 때문에 라우트 파일이나 컨트롤러에서'redirect'를 사용합니다 – apneadiving
전체 라우트 파일을 게시 할 수 있습니까? – moritz
어쩌면 나는 이것을 잘못된 길로보고있을 것이지만, "길을 찾지 않으면"404를 반환한다는 뜻인가요? 프로덕션 모드에서 Service.find (params [: id])를 수행하면 "ID가 새 인 서비스를 찾을 수 없습니다"라는 메시지가 404로 바뀌므로 동일한 기본 목적을 제공합니다. 이 페이지가 존재하지 않는다는 것을 세상에 알리는 것. – icecream