Pytanie brzmi, czy Twoja strona główna to tylko strona docelowa, czy będzie to grupa stron? Jeśli jest to tylko strona docelowa, nie spodziewasz się, że użytkownicy będą się tam długo kręcić, chyba że będą gdzie indziej. Jeśli jest to grupa stron lub podobna do istniejącej grupy, możesz dodać akcję do kontrolera, która jest najbardziej podobna.
To, co zrobiłem dla mojego obecnego projektu, to nazwanie kontrolera Static, ponieważ potrzebuję 3 statycznych stron. Strona główna jest jedną z nich, ponieważ nie ma nic do zobaczenia ani zrobienia poza przejściem gdzie indziej.
Aby wyznaczyć trasę domyślną, użyj następujących poleceń w routes.rb:
map.root :controller => 'MyController', :action => :index
W moim przypadku byłoby to:
map.root :controller => 'static', :action => :index
Jeśli chcesz, możesz utworzyć kontroler tylko dla tej strony głównej. Nazwałbym to głównym lub czymś, co pamiętasz, a co odnosi się do strony głównej. Stamtąd możesz pobrać dane i modele i przejść do widoku wyjściowego.
class MainController < ApplicationController
def index
@posts = Posts.find(:all, :limit => 10, :order => 'date_posted', :include => :user)
end
end
Zakładając, że masz poprawnie zdefiniowane relacje w modelu, szablon do dopasowania będzie bardzo prosty.
Powodzenia, mam nadzieję, że to pomoże.
@posts = Posts.find( ...lub@posts = Posts.allcoś podobnego w tym nowym kontrolerze / akcji nie byłoby uważane za naruszenie zasad DRY, mimo że taki kod może już pojawić się w akcjiPostkontroleraindex? Czy istnieje lepszy (bardziej modułowy) sposób, który wykorzystuje napisany już kod akcjiPostkontroleraindex?