11

Ben sadece eylemi clear sahip olduğu bir NotificationsController sahip olan kaynaklar. berrak Ben POST/bildirimleri yaparak bu eylemi erişmek istediğiniz Raylar: Sadece özel eylemler

/

Yani benim yönlendirici bu yazmış:

resources :notifications, :only => [] do 
    collection do 
     post :clear 
    end 
    end 

bunu başarmak için daha temiz bir yolu var mı? Ben yapardım

scope :notifications do 
    post :clear 
    end 

düşündüm ama çünkü bir missing controller hata var - Bence - bu clear denetleyicisi arar.

Teşekkür

cevap

15

Kapsamı kullanıyorsanız, bir kontrolör görünüyor eklemek gerekir Cevabınız doğruysa neden

namespace :notifications do 
    post 'clear' 
end 
+0

Ve eğer bir koleksiyona ihtiyacım varsa ve üye var mı? Hala 'post' /: id/edit 'öğesini manuel olarak tanımlamam gerekiyor mu? –

+0

Sizin durumunuzda ve kapsam veya ad alanını kullanın, yes ('get: edit,: yol => '/: id/edit''). Eğer manuel olarak ihtiyacınız yoksa, yazdıklarınızı sorunuza göre kullanabilirsiniz. Buradan okuyun http://stackoverflow.com/q/17465335/1297435 –

+3

Evet, 'gibi hissediyorum: sadece en iyi ve daha az hacky çözümü. Teşekkürler –

1
post "notifications/clear" => "notifications#clear" 
+1

açıklayan düşünün

scope :notifications, :controller => 'notifications' do post 'clear' end 

Ya da sadece kullanmak ad gibi ve ne yapması gerektiği. – DonBoitnott

+0

Tüm bildirim eylemlerini gruplamak ve kaynakların yaptığı gibi, ancak kullanmadığım varsayılan eylemler olmaksızın içinde bir 'method: action 'işlevine sahip olmak istiyorum. –