2010-11-30 11 views
6

"Uygulamalar" denetleyicim var. Bir eylem "dizin" oluşur. Şimdi "satın alma" olarak adlandırılan yeni bir işlem eklemek istiyorum:Yeni raylar oluşturma eylemi çalışmıyor mu?

def buy 
    respond_to do |format| 
    format.html 
    end 
end 

i görünümlere buy.html.erb eklendi ama/apps/satın gezinirken, ben mesajı şu olsun:

Unknown action - The action 'show' could not be found for AppsController 
peşin

match '/apps/buy', :controller => 'apps', :action => 'buy' 

teşekkürler: rotalara

Bunu eklendi!

cevap

16

Url, /apps/:id numaralı standart yoldan yakalanıyor, rotalarınızda resources :apps var mı? yolları tanımlandıkları sıraya göre yürütülür akılda

match '/apps/buy', :controller => 'apps', :action => 'buy' 
resources :apps 

Bear, bu nedenle belirli olanlar genel önce gelmesi gerekir:

Basitçe ilk satın rotayı yerleştirin.

@Ryan kaynağa koleksiyonu rota ekliyor anlaşılacağı gibi daha basit bir yaklaşım:

resources :apps, :collection => { :buy => :get } 
+4

Alternatif olarak 'kaynaklara koleksiyonu rotası olarak' buy' eylemi ekleyin: apps'. –

+0

@Ryan iyi bir nokta, bu tercih edilirdi. –

+0

çok teşekkür ederim! – Tronic