2010-08-18 4 views
2

난과 같이 설정에 경로를 트링 해요 :결합 옵션 경로가 2.3

GET/설정/ PUT/설정/ GET/설정/사진 PUT이/설정/사진

이를 나는 그것을 위해 설정을 가지고 라우팅 코드 :

#I just do this for code reuse 
get = { :method => :get } 
put = { :method => :put } 

pub.settings '/settings', :controller => :settings, :action => :index, :conditions => get 
pub.with_options :controller => :settings, :path_prefix => "/settings", :name_prefix => "settings_" do |settings| 
    settings.update '', :action => :update, :conditions => put 
    settings.photos '/photos', :action => :photos, :conditions => get 
    settings.photos_update '/photos', :action => :photos_update, :conditions => :put 
end 

이 작동,하지만 첫 번째 경로 "pub.settings"는 mapped_options 블록의 외부에 통지합니다. 내가

pub.with_options :controller => :settings, :path_prefix => "/settings", :name_prefix => "settings_" do |settings| 
    settings.root '', :action => :index, :conditions => get 
    settings.update '', :action => :update, :conditions => put 
    settings.photos '/photos', :action => :photos, :conditions => get 
    settings.photos_update '/photos', :action => :photos_update, :conditions => :put 
end 

할 일이라면

그럼 난 "settings_root_path"설정 경로가 될 것이다 (레이크 노선에서) 얻을 것이 아니라 "settings_path"

누구로 포함하는 방법을 알고 있나요 블록과 여전히 라우팅 기능 이름을 "settings_path"로 가지고 있습니까?

답변

1

레일은 :path_prefix, :path_names을 가지고 있으며, 헬퍼가 생성되는 방법을 제어 할 수 있도록 :name_prefix. rails routing guide에는 도움이 될만한 몇 가지 예가 있습니다.

:path_names은 편안한 경로에서 사용되는 이름을 제어합니다. :path_prefix은 도우미 생성시 사용되는 경로를 설정합니다. :name_prefix은 생성 된 도우미의 이름 앞에 접두사를 설정합니다. 이 접두사는 nil 또는 empty_string으로 설정할 수 있습니다. 귀하의 경우를 들어

, 나는 (비록 검증되지 않은) 시도를하려는 : 행동 => :

settings.root '', :action => :index, :name_prefix => nil, :conditions => get 
+0

이러한 정의는 오류를 settings.root 제공 인덱스를 : name_prefix =>, 전무 : 조건 => GET root_path는 제공하지만 settings_path는 제공하지 않습니다. – Bohdan

1
settings.settings '', :action => :index, :conditions => get, :name_prefix => ''