2010-06-23 8 views
5

Ich kann nicht scheinen Dokumentation Mapping Routen mit Optionen in Schienen zu finden 3.Routing in Rails 3: Karte mit Optionen?

Als konkretes Beispiel, ich brauche

map.with_options :controller => 'users' do |signup| 
    signup.signup '/signup', 
     :action => 'landing', 
     :conditions => { :method => :get } 
    signup.premium '/signup/premium', 
     :action => 'new', 
     :level => 'premium', 
     :conditions => { :method => :get }  
    signup.premium '/signup/premium', 
     :action => 'create', 
     :level => 'premium', 
     :conditions => { :method => :post } 
    signup.free '/signup/free', 
     :action => 'new', 
     :level => 'free', 
     :conditions => { :method => :get }  
    signup.free '/signup/free', 
     :action => 'create', 
     :level => 'free', 
     :conditions => { :method => :post }  
    end 

in der richtigen Syntax für rails3 zu übersetzen. Ich bin sicher, dass es einfach sein muss, dass ich übersehen habe, aber jede Hilfe oder Links zu Artikeln wäre wunderbar.

Antwort

4
scope '/signup' do 
    match '/signup' => "users#landing", :as => :signup 
    get '/:level' => 'users#new', :as => :signup_new 
    post '/:level' => 'users#create', :as => :signup_create 
end 

Dies ist speziell übersetzen kann, was ich suchte, war es zunächst unklar (für mich), dass diese So würden Optionen übersetzen.

+0

Ich würde hinzufügen, dass ich Einschränkungen hinzufügen muss, um nur frei und Premium als Optionen für das Niveau zu erlauben, aber das ist relativ trivial. –

+0

danke! habe überall nach diesem gesucht – stephenmurdoch

0

lesen http://guides.rails.info/index.html (Kantenschienen docs), um zu sehen, wie Sie Ihre Schienen 2.x Routen

+1

Danke, aber ich habe schon alles gelesen, ich hatte auf ein konkretes Beispiel gehofft. –

0
scope '/signup' do 
with_options :controller => :users do |signup| 
    signup.match '/signup', :action => :landing 
    signup.get '/:level', :action => :new, :as => :signup_new 
     # or just signup.get '/:level/new', :action => :new 
    signup.post '/:level', :action => :create, :as => :signup_create 
end 
end