Was Sie wollen, ist, einen Blick auf die Administrations-Frameworks zu werfen und zu sehen, ob das Ihre Bedürfnisse löst. Ich mag Typus und RailsAdmin Ansonsten würden Sie sich die Presenter-Muster und wie es für Rails und Ihre Anwendung gilt. Ein Dashboard würde im Grunde nur mit Ihren vorhandenen Modellen und Controller-Logik interagieren, da Sie nicht mit einer Situation enden möchten, in der Sie zwei Logiksätze für jedes Modell haben. Während der Blog, mit dem ich verlinkt habe, aus 2007 stammt, sollten Sie in der Lage sein, einige nützliche Informationen daraus zu ziehen und die Idee zu bekommen, was Sie tun müssen.
Wenn Sie irgendwelche Fragen haben, zögern Sie nicht zu fragen.
denke nur ein bisschen weniger Rails. Ich nehme an, Ihr Dashboard enthält hauptsächlich Widgets? d. h. einige in sich geschlossene Elemente, was auch immer? Warum nicht diese Widgets zu deinem Modell machen (nicht auf AR-Basis). kapseln Sie Ihre gesamte Logik und Datenabfrage in Ihr (e) Widget-Modell (e) ein. Wenn Sie nun RESTful werden möchten, können Sie beispielsweise eine WidgetsController
mit einer index
Aktion als Dashboard erstellen. In einem zweiten Schritt können Sie Ihre Show-Aktion verwenden, um JSON-Daten für jedes Widget für AJAX-Teile Ihres Dashboards bereitzustellen. usw.
Denken Sie nur daran, dass REST nicht unbedingt == CRUD ist und ein Model kein ActiveRecord-Modell sein muss. Rails zwingt dich in das MVC-Muster, was eine großartige Sache ist, und macht sogar schlecht geschriebene Rails-Apps besser als eine Menge PHP-Chaos dort draußen, aber manchmal vergessen wir, dass es außerhalb von ActionController + ActiveRecord usw. viele Möglichkeiten gibt .
Wäre das ein Anwendungsfall für das Moderatormuster ?
Ich bin dabei, ein ddashboard zu implementieren, und das ist das beste Design, das meiner Meinung nach zu einer wartbaren Codebasis führen wird.
Meine Lösung besteht darin,
auszuführen %Vor%Erstellen Sie dann manuell ein Modell app / models / dashboard.rb, dessen Inhalt so klein wie
sein kann %Vor%Natürlich können Sie mit dem Modell die gesamte Logik verwenden, die Sie benötigen, um Daten von anderen Modellen zu fischen.
Zurück zum Controller, Sie erstellen nur die Indexaktion. Zuletzt erstellen Sie die Datei app / views / dashboards / index.html.erb mit dem von Ihnen benötigten Inhalt. Fügen Sie die Route hinzu und es geht Ihnen gut. Wenn Sie auf Details achten, können Sie die URL von / Dashboards in / Dashboard ändern. Das ist es, ich denke es ist sehr Rails-y.
Tags und Links ruby-on-rails model-view-controller controller dashboard