ruby-on-rails

Les générateurs

Générer un model:

1
$ rails generate model <Mon_model> [champs]
1
$ rails generate model User name:string email:string

Le modèle commence avec une majuscule

Génerer une migration

Par exemple: ajouter un champ password au model user

1
$ rails generate migration add_password_to_users encrypted_password:string

Générer un contrôleur

1
$ rails generate controller <Moncontroleur> [actions]

Le contrôleur commence avec une majuscule et se termine avec avec un pluriel
ex:

1
$ rails generate controller Pages home contact

Les tests d’intégration

1
$ rails generate integration_test layout_links

Le scaffold

Permet de générer modèle vue, contrôleur et le reste de l’architecture REST pour une ressource spécifiée:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ rails generate scaffold User name:string email:string
invoke active_record
create db/migrate/20100615004000_create_users.rb
create app/models/user.rb
invoke test_unit
create test/unit/user_test.rb
create test/fixtures/users.yml
route resources :users
invoke scaffold_controller
create app/controllers/users_controller.rb
invoke erb
create app/views/users
create app/views/users/index.html.erb
create app/views/users/edit.html.erb
create app/views/users/show.html.erb
create app/views/users/new.html.erb
create app/views/users/_form.html.erb
invoke test_unit
create test/functional/users_controller_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
create test/unit/helpers/users_helper_test.rb
invoke stylesheets
create public/stylesheets/scaffold.css

Test

Initialiser rspec

Déclarer les gem de rspec

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
source 'http://rubygems.org'

gem 'rails', '3.0.1'
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3'

group :development do
gem 'rspec-rails', '2.0.1'
end

group :test do
gem 'rspec', '2.0.1'
gem 'webrat', '0.7.1'
end
``
Puis on initialise les fichiers
```bash
rails generate rspec:install

EN plus de rspec et rspec-rails, voir pour autotest, spork et les [http://automate-everything.com/2009/08/gnome-and-autospec-notifications/|notifications]

Ne pas oublier d’initialiser la base de test:

1
rake db:test:prepare

Utiliser faker

Le gem faker permet de générer une database de test

1
2
3
group :development do
gem 'faker', '0.3.1'
end

Mettre à jour lib/tasks/sample_data.rake
Remplir la DB:

1
rake db:populate