Mam następujący problem. Chcę utworzyć widok częściowy w widoku layouts/application.html.erb czyli szablonie głównym. Do tego widoku częściowego chcę przekazać dane z modelu (ma to być po prostu submenu). I nie wiem w jaki sposób to zrobić. Teoretycznie utworzyłem metodę pobierającą dane w application_controller.rb natomiast to rozwiązanie nie działa. Jakieś sugestie? Dodam że potrzebuję tych danych w widoku który odpala się przy każdym kontrolerze dlatego nie chcę dodawać do każdego z nich osobnej metody.
Chyba w swoim opisie zbyt skomplikowałem problem. Wystarczyło pobrać dane z modelu w “application_helper” a następnie spokojnie były one dostępne w widoku “application.html.erb”. Przez literówkę myślałem, że to niemożliwe. Poprawiłem i działa jak należy. Swoją drogą czy poprawniej będzie pobrać dane z modelu najpierw w “application_controller” a następnie skorzystanie z nich w helperze, zamiast bezpośrednio korzystać z modelu w helperze?
Bardziej elegancko byłoby zapewne w kontrolerze, oczywiście pamiętając o odpowiednich filtrach. Z drugiej strony, jeśli te dane są tylko pobierane, to przy przesunięciu możliwie jak największej porcji logiki aplikacji na warstwę modelu, nie widzę przeszkód do pozostawienia tego helperom. Jeśli pracujesz w zespole - ustalcie jakąś konwencję dotyczącą rozwiązywania tego typu problemów. Jeśli piszesz dla siebie/jako freelancer - wypracuj sobie konwencje tworzenia kodu… i się ich trzymaj.