2

私は次のようにルートを設定しようとしています:

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」として持っていますか?

4

2 に答える 2

1
 settings.settings  '', :action => :index, :conditions => get, :name_prefix => ''
于 2010-08-18T14:59:22.897 に答える
1

Railsには:path_prefix、、が:path_namesあり:name_prefix、ヘルパーの生成方法を制御するのに役立ちます。レールルーティングガイドには、役立つ可能性のあるいくつかの例があります。

:path_namesRestfulルートで使用される名前を制御し、 :path_prefixヘルパーを生成するときに使用されるパスを設定します。 :name_prefix生成されたヘルパーの名前にプレフィックスを設定します。このプレフィックスは、nilまたはempty_stringに設定できます。

あなたの場合、私は試してみます(テストされていませんが):

settings.root '', :action => :index, :name_prefix => nil, :conditions => get
于 2010-08-18T15:08:11.990 に答える