2010-06-23 11 views
5

I nie może się znaleźć w dokumentacji na trasach mapowania z opcji w szynach 3.Routing w Rails 3: Mapa z opcjami?

Jako konkretny przykład, muszę tłumaczyć

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 

Do prawidłowej składni rails3. Jestem pewien, że to musiało być proste, ale przeoczyłem, ale każda pomoc lub linki do artykułów byłyby cudowne.

Odpowiedz

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 

Jest to specjalnie co szukałem, nie było jasne, na początku (do mnie), że to jest sposób, w jaki opcje będą tłumaczyć.

+0

Dodam, że muszę dodać do nich ograniczenia, aby tylko pozwalać na darmowe i premium jako opcje dla poziomu, ale jest to względnie banalne. –

+0

dzięki! szukałem wszędzie tego – stephenmurdoch

0

czytać http://guides.rails.info/index.html (szyny brzegowe docs), aby zobaczyć, jak można przetłumaczyć szyn trasy 2.x

+1

Dzięki, ale już to przeczytałem, liczyłem na konkretny przykład. –

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