Czy istnieje możliwość, z poziomu klasy, odwoływać się do akcji innych klas?
class HejController
def Akcja
jakas komenda
end
end
class hej2Controller
def Akcja2
Hej::Akcja
end
end
Czy istnieje możliwość, z poziomu klasy, odwoływać się do akcji innych klas?
class HejController
def Akcja
jakas komenda
end
end
class hej2Controller
def Akcja2
Hej::Akcja
end
end
A można zapytać do czego to jest potrzebne?
Jeśli chcesz współdzielić jakiś kod pomiędzy kontrolerami, to najlepiej przerzucić go do klasy z której dziedziczą - domyślnie ApplicationController.
Jeśli chcesz użyć wzorca (template) z innego kontrolera, to możesz po prostu zrobić render “hej/akcja”, ale jest to raczej niezalecane (np. jeśli masz jakiś fragment (partial) w tamtym wzorcu, to będzie on szukany w app/views/hej2/ a nie w app/views/hej).
A może chodzi o jakieś inne zastosowanie?
Generalnie chodzi o to, że mam funkcję, dodającą do bazy danych, która wykorzystywana jest w dwóch miejscach. Pomysł z umieszczeniem jej w ApplicationController wydaje się być ok. Dzięki.
Taka funkcja zdecydowanie nie powinna lądować w controllerze tylko w modelu. Wtedy nie ma problemu z jej wywołaniem z różnych controllerów, a ponadto jest to zgodne z wzorcem MVC.