town_center 컨트롤러, 제재소 컨트롤러, 채석 컨트롤러 등과 같은 컨트롤러가 여러 개있는 상황이 있습니다.경로를 기반으로하는 다른 컨트롤러 : 이름
내 응용 프로그램의 URL은/town_center/view 또는 sawmill/view, quarry/view 등이 될 필요가 있습니다.
문제는 이러한 경로를 실제로 작성하는 방법입니다. 예를 들어, town_center 컨트롤러의 경우 다음과 같은 문자가 있습니다.
scope :path => '/town_center', :controller => :town_center do
get '/view/' => :view, :as => 'town_center'
end
이 작업은 정상적으로 작동하지만 문제가 있습니다. 실제로 town_center 컨트롤러에서 view 액션을 실행할 때 url에 params 속성으로 존재하지 않기 때문에 건물의 ID를 가져 오는 간단한 방법은 없습니다.
get '/view/:name' => :view, :as => 'view_building'
하지만 그 접근 방식에 문제가 모든 것이 하나의 컨트롤러로 연결됩니다 있다는 것입니다 :
하나 개의 간단한 아이디어는 같은 경로를 생성하는 것입니다. 그래서, 내 질문은 어떻게 URL에 식별자가 여전히 특정 컨트롤러로 리디렉션되도록 만들 수 있습니까?
또는 이것이 일반적인 아이디어로 올바르지 않다고 생각하면 더 좋은 방법이 있습니까?
네, 저는 이것들을 알고 있지만 리소스를 사용하는 것을 좋아하지 않습니다. 수동으로 경로를 작성하는 것을 선호합니다. 나는 단지 : id를 url의 일부로 사용할 수 있다는 것을 알고 있지만, 하나의 id가있는 town_center가 하나뿐이므로 중복되는 느낌이 들었다. 하지만 나는 걷는 것이 안전한 길이라고 생각합니다. – Spyros
각 엔티티의 ID가 정적이라고 말하는 것입니까? ID가 하드 코딩 된 ID라면 경로 정의의 일부로 전달할 수 있어야합니다. 예 :'get '/ view /'=> :보기, : as as => 'town_center', : id => 14' – Ryan
경로 리소스가 복수 일 필요는 없습니다. 자원 : town_center가있을 수 있습니다. 나는 당신 자신의 길을 굴리는 것을 추천하지 않을 것이다. –