2009-04-24 16 views
5

Projektowanie aplikacji internetowej z sekcją administratora i publiczną sekcją skierowaną. Wygląda na to, że posiadanie kontrolera publicznego tylko dla "indeksu" i "pokazu" jest nieco zbędne. Wszystkie sugestie, które przeczytałem, sugerują przestrzeń nazw dla administratora, co jest w porządku. Zastanawiam się tylko, czy powinienem mieć jednego kontrolera z akcją dodawania, powiedzmy "list_public" lub coś podobnego.Szyny - Dwa kontrolery lub dodawanie działań?

Jestem nowy z Rails, więc może po prostu martwię się o nic. Po prostu nie podoba mi się pomysł posiadania wszystkich kontrolerów, widoków, pomocników o tej samej nazwie rozproszonych po katalogach moich projektów.

Ktoś ma wgląd w to? Z góry dziękuję.

Odpowiedz

7

Powiedziałbym, że oba kontrolery (jeden publiczny i jeden administrator) to najlepsze rozwiązanie.

Teraz można zrobić, aby oba kontrolery wywoływały tę samą metodę, która wykonuje powiązane akcje w akcjach.

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

Dzięki, Matt. To ma sens Po prostu potrzebuję jakiejś weryfikacji, że to nie jest "przesadzone". – TMB

6

Jak powiedział Matt, ale można też to zrobić:

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 

Oznacza to, że można po prostu skupić się na bardziej wyspecjalizowanych przypadkach for Admin :: MyController zamiast kodu powtarzać.

Powiązane problemy