Akcje kontrolera dodane 'z palca'

Cześć, jestem początkujący, więc proszę o wyrozumiałość. Czy wywołanie w sposób

link_to 'fight', :controller=>'mains', :action=>'fight'

dodanej z palca do kontrolera ‘mains_controller’ akcji ‘fight’ w której nie będzie nic zadeklarowane, powinno skutkować wyświetleniem się widoku fight w folderze views/mains/ ? czy muszę coś jeszcze zrobić z plikiem routes.rb? Dzięki za pomoc, pozdro!

Generalnie to sprawdź, ale na moje oko i na mojej wersji, to powinieneś właśnie w routingu głównie zadziałać. Generalnie, link_to nie wyświetla widoku, tylko link do pewnej strony. Do zbudowania tego linku potrzebuje właśnie danych z routes.rb. To istnienie kontrolera i akcji jest mu całkowicie obojętne na tym etapie.

Brak kontrolera lub akcji odczujesz dopiero gdy klikniesz na taki link. I tu znów, jeżeli w routingu nie będzie wpisanej akcji, to Rails uzna, że adres jest nieznany i wświetli Ci błąd.

Natomiast jeżeli akcja będzie zdefiniowana w kontrolerze, ale poza def ...; end nic tam nie będzie, to wszystko zadziała, o ile wspomniany widok będzie istniał. Domyślnym działaniem railsów jest wyświetlenie widoku pasującego do nazwy akcji, o ile sama akcja lub jeden z filtrów już wcześniej czegoś nie wyrenderował.

Musisz mieć domyślne niezasobowe ścieżki typu

:controller/(:action)

patrz komentarze w routes.rb

w routes.rb powinieneś mieć linijkę:

resources :mains

Zmień na

resources :mains do collection do get 'fight' end end
w widokach mains dodaj plik fight.erb i tam sobie wyświetl co potrzebujesz

w kontrolerze dodaj

[code]def fight

coś co ma się dziać dla tej akcji

end[/code]
po tym powinien ci zadziałać link

<%=link_to "Fight", fight_mains_path %>