Я пытаюсь настроить маршрут так:
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.
Если бы я был todo
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"?