2

당신이 동적으로 다음과 같은 경로를 생성하는 방법을 알고 acts_as_tree : 나는 나무 역할을하는 Folder 모델을 가지고 있기 때문에 나는이 질문을건물 중첩 된 노선들은

... (/:parent_id(/:parent_id(/:parent_id(/:parent_id))))/:id 

을 (그것은 parent_id 필드가)이고, 해당 to_param 메서드는 을 반환하며 이는 parent_id의 범위를 통해 uniq입니다. 따라서 :parent_id 및 이벤트 :id은 각각 name입니다. 여기에 (4 하위 폴더 포함) 경로의 예는 다음과 같습니다

/home/desktop/projects/rails/foobar 

... 첫 :parent_id (루트) "집"이고 :id이 "는 foobar"입니다.

경로의 또 다른 예 (1 하위 폴더 포함) 수 : 당신이 볼 수 있듯이,

/home/music 

..., params[:parent_id] == 'home'params[:id] == 'music'.

가능한 중첩 된 경로를 처리하는 아름다운 Rails 3 경로를 작성하는 명확한 방법이 있습니까? 감사!!

답변

4

route globber을 사용하고 컨트롤러에서 분해하면 어떨까요?

# routes.rb 
get "/*folders/:id" => "files#show" 

*folders 섹션은 여러 URL 세그먼트를 glob에 있습니다.

# files_controller.rb 
def show 
    folders = params[:folders].split('/') # gives an array of folder names 
    # do whatever else necessary 
end 
+0

내가 필요한 것! 감사합니다, @ edgerunner! –