Podpięcię kontrolera do kontrolera

Witam,

Jestem początkujący w RoR. Szukałem rozwiązania na tym forum, a także w Google - bez skutku. A problem jest następujący. W ramach nauki tworzę prosty blog składający się z listy artykułów i komentarzy do nich podpiętych. Zamierzam od początku stosować odpowiednie wzorce projektowe, więc oddzieliłem kontroler artykułów od komentarzy. Myślę, że w takim sposób powinno nastąpić odseparowanie logik biznesowych. Jeśli się mylę, proszę mnie nakierować na lepsze rozwiązanie.
Wracając do sedna sprawy. Kontroler artykułów Articles posiada na tym etapie metody wyświetlania wszystkich artykułów, formularza dodającego artykuł, tworzącego go, oraz wyswietlania jednego artykułu z komentarzami. I na tym etapie nie wiem jak podpiąć kontroler komentarzy Comments do kontrolera Articles, by artykuł posiadał listę komentarzy oraz formularz dodający komentarz. Nie chcę aby był dostępny z poziomu adresu URL. Zamieszczam kod odpowiedzialny za wyświetlenie artykułu i komentarzy do niego.

[code]

<%= h @article.title %>

<%= h @article.text %>

Komentarzy:


# komentarze #[/code] [code]

Lista komentarzy

<% if @article.comments %>
    <% for comment in @article.comments %>
  • <%= h comment.author %>

    <%= h comment.text %>

  • <% end %>
<% else %>

Brak komentarzy.

<% end %>

<% form_for @comment, :url => { :action => ‘create’, :id => @article } do |f| %>

Nowy komentarz Autor:
<%= f.text_field :author %> Komentarz:
<%= f.text_area(:text, :size => "20x6") %> <% end %>
[/code] Pozdrawiam

Tutaj masz gotowego tutka

http://rubyonrails.kluza.eu/radrails/tutoriale/tutorial-komentarze-i-newsy/

Przerabiałem ten tutorial. Niestety posiada domyślnie jeden kontroler, w ktorym opakowano metodę obsługi komentarzy. Takie rozwiązanie mnie nie satysfakcjonuje, chyba że taki wzorzec jest najlepszy.

Mylisz dwie rzeczy - warstwę kontrolera (klasy dziedziczące z ApplicationController) z warstwą modelu (klasy dziedziczące z ActiveRecord::Base) i stąd biorą się Twoje problemy.

Nigdzie nie jest powiedziane, że jeden kontroler musi obsługiwać wyłącznie jeden model. Zazwyczaj tylko w panelu administracyjnym jednemu modelowi odpowiada jeden kontroler. To jest zupełnie normalna sytuacja, kiedy jeden kontroler operuje na kilku modelach. Najważniejsze jest to, żeby kontroler nie zwierał logiki biznesowej, która ma być w modelu.

Ponadto nie bardzo wiem jak interpretować pytanie w tytule “podpięcie kontrolera do kontrolera”.