Kilka kontrolerów w jednym widoku

Witam.
Zacznę od tego że mam 3 modele: Client, Company, Info

asocjacje wyglądają następująco:

client has_many companies
companies belongs_to client
client, company has_many infos
info belongs_to client, company

i teraz w akcjach show klienta i firmy mam przycisk do wyświetlenia info i w tym widoku (info) chciałbym mieć przycisk dodania nowej informacji albo dla firmy albo dla klienta w zależności skąd do info wszedłem oraz parę innych rzeczy zależnych od tego czy to info klienta czy firmy

routes wyglądają tak:

    resources :clients do 
      resources :companies do
        resources :infos
      end
      resources :infos
    end

czy można to jakoś rozwiązać bez masy instrukcji warunkowych?
ewentualnie czy jakieś poprawki powinienem wprowadzić (ew. rozdzielić info na 2 osobne tabele)?

Witam,

A czy Company może występować osobno - nie być przypisaną do Client-a?
Czy jednak tu chodzi tylko o firmy, których usługi wykorzystuje klient?

Jak dla mnie, to klient i firma posiadają różne informacje i nie wiem, jak oni będą w jednej tabeli znajdowali się. A co do rutingu, to tak - lepiej było by zrobić maksymalnie 2 poziomy.

Pozdrawiam,
Raman.

Idea jest taka ze zakladam “konto” klientowi i klient moze miec swoje firmy w serwisie. Client i Company maja jakies swoje info a sam model info przechowuje tylko pola info_type i value. Takie info dodatkowe to jest.

Coś mi się zdaję, że to powinno wyglądać mniej-więcej tak:

Dependences:

client has_many infos
company has_many infos
info belongs_to client, company

Routes:

resources :clients do 
  resources :infos
end
resources :companies do
  resources :infos
end

No a klienta i firme powiązać za pomącą Primary-Foreign key.
Pozdrawiam.

P.S. Sory, że tak mało konkretyki!

nie wiem czy to do końca poprawnie ale rozwiązałem to w ten sposób że zrobiłem jednak osobne widoki i 2 kontrolery: client info i company info

Ja bym rozwiązał to tak

/app
  /controllers
    MyController.rb
    MyController2.rb
  /views
     /sharedparts
        _my_views_part.html.erb
     my_controller/
       index.html.erb
     my_controller2/
       index.html.erb

A w każdym z plików index

= render layout: 'sharedparts/my_view_part'

I jeśli widoki mają być takie same to mogą się mieścić tym pliku my_view_part