2009-04-24 10 views
5

Yönetici bölümü ve herkese açık bölümle bir web uygulaması tasarlama. Sadece "index" ve "show" için halka dönük bir denetleyiciye sahip olmak gibi hissettiriyor biraz fazla. Okuduğum tüm öneriler, yönetici için bir ad alanı önermektedir, bu da iyidir. Sadece bir ek eylem ile bir denetleyici olmalı, "list_public" ya da böyle bir şey söylemeliyim merak ediyorum.Raylar - İki kontrolör veya ekleme eylemleri?

Rails ile yeni yaşıyorum, belki sadece hiçbir şeyden endişeleniyorum. Sadece tüm bu denetleyicilere, görüşlere, aynı isimde yardımcılara proje dizinlerimin her yerine dağılma fikrini sevmiyorum.

Bunun hakkında herhangi bir fikir sahibi olan var mı? Şimdiden teşekkürler.

cevap

7

Her iki denetleyicinin (bir genel ve bir yönetici) en iyi çözüm olduğunu söyleyebilirim.

Artık yapabilecekleriniz, hem denetleyicilerin, eylemlerde ilgili eylemleri gerçekleştiren aynı yöntemi çağırmasıdır.

class MyController < ApplicationController 
    def show 
    MyModel.do_all_sorts_of_stuff 
    end 
end 

class Admin::MyController < ApplicationController 
    def show 
    MyModel.do_all_sorts_of_stuff 
    # Admin only stuff goes here 
    end 
end 
+0

Teşekkürler Matt. Bu mantıklı, sadece "abartılı" olmadığına dair bazı doğrulamalara ihtiyacım var. – TMB

6

Matt söyledi, ama aynı zamanda bunu yapabilirsiniz gibi:

class MyController < ApplicationController 
    def show 
    MyModel.do_all_sorts_of_stuff 
    end 
end 

class Admin::MyController < MyController 
    def show 
    super 
    # Admin only stuff goes here 
    end 
end 

Bu sadece ziyade kodu tekrarlayarak daha Yönetici :: MyController için daha özel durumlarda odaklanmak anlamına gelir.