##Exercise for pop
A chaque étape, il y aura un commit, ça vous permettra de suivre facilement la modification des fichiers au fur et à mesure en cliquant sur le lien du numéro de commit de type e4f12g5
On utilise l'option --skip-bundle
pour qu'à la génération de l'application bundle install
ne soit pas exécuté.
$ rails new Mysliders --skip-bundle
Ajout dans Gemfile
gem 'paperclip'
puis
$ bundle install
en utilisant les scaffold
$ rails g scaffold slide name:string desc:text author:text
pour y ajouter les root
et le namespace
pensez à regarder au rake routes
resources :slides, only: [:index]
namespace :admin do
resources :slides
root 'slides#index'
end
root 'slides#index'
$ rails generate paperclip slide picture
$ rake db:create
$ rake db:migrate
pour ajouter les validations pour picture
et le reste du model
et copie des fichiers créés automatiquement lors du scaffold
On en profite pour effacer les fichiers du frontend qui ne serviront plus et modifier le controller frontend de slider.
On notera que dans le controler Admin/sliders que les méthodes create et update ne renveront pas vers show mais vers index.
se référer au retour de la commande $ rake routes
Pour commencer à répondre à la demande initiale
Arrivé à ce stade, si vous lancez votre server rails (
rails s
) L'urlhttp://localhost:3000
vous donnera une page page
Il faut modifier les vues et le controller afin que :picture
soit pris en compte
c'est presque fini
Il faut encore modifier la vue index du frontend pour quelle corresponde à ce qui est demandé.
Ça devait attendre le prochain exercice, mais il est possible de vous affranchir des étapes #7 #8 #9 en utilisant la gem rails-admin-scaffold
disponible ici
Ça simplifie la vie, mais attention, ça formatte salement le fichiers routes.rb
14 / Créer 3 champs ( créer migration) commit
published
(boolean)published_from
(datetime)published_to
(datetime)
15 / Modifier les views admin
et le admin::controller
commit
16 / Modifier controller frontend, vue index pour tenir compte des 3 nouveaux champs commit
Le but est de filtrer le champ published
pour afficher que les slides choisis
et de les afficher si la date à l'instant T est comprise dans published_from
et published_to
17 / Installer la gem sorcery
cf documentation de la gem