私は次のようにルートを設定しようとしています:
GET / settings / PUT / settings / GET / settings / photos PUT / settings / photos
これは私が設定したルーティングコードです:
#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_path」ではなく「settings_root_path」になります。
誰かがそれをブロックに含める方法を知っていて、ルーティング関数名を「settings_path」として持っていますか?