Web development that doesn`t hurt
Transcription
Web development that doesn`t hurt
Ruby On Rails Web development that doesn’t hurt Table des matières - Ruby Rails Modèle Vue Contrôleur Références Ruby - Langage créer en 1995 par Yukihiro Matsumoto - Inspiré par Perl, Smalltalk, Eiffel, Ada et Lisp - Langage interprété - Langage fortement orienté objet - “Ruby is simple in appearance, but is very complex inside, just like our human body” - Yukihiro Matsumoto Gems - Gems = librairies - Gérées par RubyGems Gemfile source 'https://rubygems.org' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '4.2.4' # Use mysql as the database for Active Record gem 'mysql2', '~> 0.3.20' # Use SCSS for stylesheets gem 'rails_admin', '~> 0.7.0' gem 'cancancan' gem 'devise', '~> 3.5.2' gem 'sass-rails', '~> 5.0' # Use Uglifier as compressor for JavaScript assets gem 'uglifier', '>= 1.3.0' Ruby on rails - Une des gems de ruby Fait pour faire du web avec ruby Implémente de base le modèle MVC Utilise un routeur interne pour les URL Ruby on rails - Simplifier la conception d’applications et sites web - Réduire les risques de bogues - Augmenter la maintenabilité - Quelques sites utilisant rails: - Twitter, Github, Kickstarter, Twitch et plusieurs autres Modèle - Définit la structure de la base de données - Réduit la redondance - Optimisation des requêtes Exemple de migration class Cores < ActiveRecord ::Migration def change create_table 'countries' do |t| t.string :name end create_table 'states' do |t| t.string :name t.string :code t.belongs_to :country , foreign_key : true end create_table 'cities' do |t| t.string :name t.belongs_to :state, foreign_key : true end ... add_foreign_key :productions , :entities , column: :author_id , on_delete : :cascade ## Association Tables ## create_table 'sponsor_productions' do |t| t.integer :weight t.belongs_to :sponsor , foreign_key : true t.belongs_to :production , foreign_key : true end create_table 'entity_productions' do |t| t.string :name t.string :first_name t.string :quote t.text :description t.belongs_to :entity, foreign_key : true t.belongs_to :production , foreign_key : true end end end Exemple d’un modèle class Production < ActiveRecord::Base has_many :comments has_many :performances has_many :sponsor_productions has_many :entity_productions def author Entity.find(self.author_id) rescue ActiveRecord::RecordNotFound return nil end def producer Entity.find(self.producer_id) rescue ActiveRecord::RecordNotFound return nil end end Contrôleur - Accès à la base de données Validations Affichages (Préparation) Contrôle d’accès utilisateurs Exemple d’un contrôleur class ProductionsController < ApplicationController protect_from_forgery with: :exception def collection @productions = Production.all end def show @productions = Production.all @production = @productions.find_by id: params[:id || 0] end end Vue - Format ERB (Embedded Ruby) - Multiples symboles pour intégrer le ruby au html - <% %> Exécute le code <%= %> Exécute le code et affiche le résultat <%- -%> Enlève les espaces précédent et suivant les brackets <%# %> Commentaires Exemple d’une vue <section class="cast"> <h3>Distribution</h3> <ul> <%- @production.entity_productions.all.each { |entity_production| %> <li> <%= image_tag entity_production.image('512x512'), :height => 256, :width => 171 %> <div> <h4><%= entity_production.full_name %></h4> <sup><%= entity_production.entity.full_name %></sup> <p class="quote"><%= entity_production.quote %></p> <%- if entity_production.description != nil entity_production.description.each_line { |description| %> <p><%= description %></p> <%- } %> <%- end %> </div> </li> <%- } %> </ul> </section> Références - ruby-lang.org - rubyonrails.org
Documents pareils
Annexes - Divertissements mathématiques et informatiques
Figure A.7 – Le programme Xcode est rangé dans Developer, Applications.
Pour éditer un fichier Ruby dans Xcode, lancez Xcode, puis faites : File/New Empty File.
Lorsque vous enregistrerez le fichie...