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 Static
erstellen, 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 desPost
Controllers enthalten istindex
. Gibt es einen besseren (modulareren) Weg, der den bereits geschriebenen Code der Aktion desPost
Controllers verwendetindex
?