Tout nouveau à Ruby on Rails et je suis coincé sur une tâche probablement facile. En gros, je travaille sur l'application d'un collègue et j'ai besoin d'ajouter une page supplémentaire qui montre aux utilisateurs comment l'application fonctionne. J'ai déjà écrit le code HTML et les styles. Je ne sais pas comment l'ajouter exactement à Rails et configurer les itinéraires correctement. Toute aide serait appréciée!
First assurez-vous que votre collègue n'a pas déjà créé de contrôleur pour gérer les pages statiques. Regarder sous app/controllers
pour les contrôleurs intitulés quelque chose de similaire à directories_controller
ou pages_controller
, etc. Si tel est le cas, suivez le modèle que votre collègue a déjà établi (vous voudrez peut-être lui demander des conseils à ce stade). S'il n'y a pas de contrôleur de pages statiques comme celui-ci, suivez les conseils ci-dessous.
Vous pouvez créer un contrôleur nommé quelque chose comme PagesController
qui définit les méthodes qui correspondent à une route. Par exemple, votre page supplémentaire peut être appelée "aide", auquel cas vous pouvez définir un contrôleur comme ceci:
class PagesController < ActionController::Base
def help
# put any code here that you need
# (although for a static view you probably won't have any)
end
end
Ensuite, vous voudrez créer un nouveau dossier sous app/views
intitulé pages
, et vous pouvez y ajouter votre page statique (application/vues/pages) avec un .erb
extension. Utilisant un .erb
permettra à votre nouvelle page d'utiliser la mise en page par défaut.
Enfin, vous devrez ajouter ce contrôleur à routes.rb
dans (config/routes.rb)
pour dire Rails où chercher le /help
page:
match '/help' => 'pages#help'
Si vos pages sont vraiment statiques (rien de dynamique en elles), vous pouvez les déposer dans le /public
et ils seront directement accessibles.
Un fichier dans ../public/help.html
sera accessible à http://yourdomain.com/help.html
Si vous souhaitez utiliser vos mises en page mais simplement fournir du contenu statique, vous pouvez créer un contrôleur, des itinéraires et des vues pour cela comme suit.
# static_controller.rb
class StaticController < ApplicationController
def show
render params[:page]
end
end
# towards the end of routes.rb
get "/:page" => "static#show"
Et donnez votre avis dans app/views/static
. Vous pouvez également utiliser simplement html ou erb. Une vue appelée help.html.erb
sera disponible sur http://yourdomain.com/help
Tout fichier de vue que vous créez sous app/views/static
sera disponible sans modifier vos itinéraires ou votre contrôleur.