Die Frage ist, ist Ihre Homepage nur eine Zielseite oder wird es eine Gruppe von Seiten sein? Wenn es sich nur um eine Zielseite handelt, erwarten Sie nicht, dass Ihre Benutzer lange dort herumhängen, außer woanders hinzugehen. Wenn es sich um eine Gruppe von Seiten handelt oder einer vorhandenen Gruppe ähnelt, können Sie dem Controller, dem er am ähnlichsten ist, eine Aktion hinzufügen.
Was ich für mein aktuelles Projekt getan habe, ist einen Controller mit dem Namen zu Staticerstellen, da ich 3 statische Seiten benötige. Die Homepage ist eine davon, da es nichts zu sehen oder zu tun gibt, außer woanders hinzugehen.
Verwenden Sie Folgendes, um eine Standardroute zuzuordnen routes.rb:
# Place at the end of the routing!
map.root :controller => 'MyController', :action => :index
In meinem Fall wäre dies:
map.root :controller => 'static', :action => :index
Wenn Sie möchten, können Sie einen Controller nur für diese Homepage erstellen. Ich würde es main nennen oder etwas, an das Sie sich erinnern können, das sich auf die Homepage bezieht. Von dort aus können Sie Ihre Daten und Modelle abrufen und auf die Ausgabeansicht zurückgreifen.
class MainController < ApplicationController
def index
@posts = Posts.find(:all, :limit => 10, :order => 'date_posted', :include => :user)
end
end
Angenommen, Sie haben Ihre Modellbeziehungen korrekt definiert, ist die entsprechende Vorlage sehr einfach.
Viel Glück, hoffe das hilft.
@posts = Posts.find( ...oder@posts = Posts.allähnliches in diesem neuen Controller / dieser neuen Aktion würde also nicht als Verstoß gegen die DRY-Prinzipien angesehen, obwohl ein solcher Code möglicherweise bereits in der Aktion desPostControllers enthalten istindex. Gibt es einen besseren (modulareren) Weg, der den bereits geschriebenen Code der Aktion desPostControllers verwendetindex?