Acknowledgements 2
Errata 3
Feedback 4
Translations 5
Table of Contents 6
1. Pendahuluan 10
1.1. Apa itu Ruby on Rails? 10
1.1.1. Ruby 10
1.1.2. Rails 11
1.2. Sejarah Rails 11
1.3. Kenapa Menggunakan Ruby on Rails 12
1.4. Aplikasi/Website Apa Saja yang Menggunakan Rails 13
1.5. Instalasi Ruby on Rails 14
1.5.1. Instalasi Ruby on Rails pada Ubuntu 14.04 14
1.5.2. Instalasi Ruby on Rails pada Windows 15
1.5.3. Instalasi Ruby on Rails pada Mac OS X Yosemite 20
1.5.3.1. Install Xcode Command Line Tools 21
1.5.3.2. Install Homebrew 23
1.5.3.3. Instalasi Ruby Menggunakan RVM 24
1.5.3.4. Gem Manager dan RVM Gemsets 24
1.5.3.5. Menginstall Rails 24
2. Ruby 26
2.1. Kenapa Harus Belajar Ruby Terlebih Dahulu 26
2.2. Fitur Ruby 26
2.3. Ruby Editor 27
2.5. Interactive Ruby Shell 28
2.6. Ruby Syntax 30
2.7. Reserved Words 31
2.8. Memberikan Comment pada Ruby 32
2.9. Tipe Data 32
2.9.1. String 32
2.9.2. Numbers 33
2.9.3. Symbol 34
2.9.4. Arrays 34
2.9.5. Hashes 35
2.10. Variables 36
2.10.1. Global 36
2.10.2. Instance 37
2.10.3. Local 38
2.10.4. Class Variables 39
2.10.5. Constants 39
2.11. Operators 40
2.11.1. Operator Aritmatik 40
2.11.2. Operator Perbandingan 41
2.11.3. Operator Pemberian Nilai 41
2.11.4. Operator Pemberian Nilai Paralel 42
2.11.5. Operator Logika 42
2.11.6. Operator Tenary 42
2.11.7. Oprator Range 43
2.11.8. Operator defined? 43
2.11.9. Operator “.” dan “::” 44
2.12. Blok dan Perulangan 44
2.13. Methods 46
2.14. Class dan Object 47
2.14.1. Class 47
2.14.2. Objek 48
3. Rails 50
3.1. Rails Solusi Startup Sampai dengan Enterprise 50
3.2. Membuat Project Rails 51
3.3. Struktur File/Folder 52
3.4. MVC Pattern 55
3.4.1. Models 57
3.4.1.1. Active Record 57
3.4.1.2. Active Redord sebagai ORM Framework 57
3.4.1.3. Aturan dan Konfigurasi pada Active Record 58
3.4.1.4. Active Record Query Interface 60
3.4.2. Views 63
3.4.2.1. Layouts 63
3.4.2.2. Render secara Default 63
3.4.2.3. Menggunakan Render 65
3.4.2.3.1. Render Nothing 65
3.4.2.3.2. Render Action View 65
3.4.3. Controllers 66
3.4.3.1. Route 66
3.4.3.1.1. Menghubungkan URL dengan Controller dan Method 66
3.4.3.1.2. Resource Routing 66
3.4.3.1.3. Membuat Multiple Resource 67
3.4.3.1.4. Singular Resources 68
3.4.3.2. Aturan Pemberian Nama Controller 69
3.4.3.3. Methods dan Actions 69
3.5. Koneksi dengan Database 70
4. Membuat Aplikasi dalam 1 Menit 73
4.1. Buat Project 73
4.2. Jalankan Server 73
4.3. Buka Browser 74
4.4. Membuat CRUD dengan Perintah Scaffold 74
4.5. Migrate 76
4.6. Halaman Aplikasi 77
4.7. Mengganti URL Default dari Scaffold 78
4.8. Mengganti Tampilan Default 80
5. Membuat CRUD Manual 82
5.1. Alur Kerja 82
5.2. Model 83
5.3. Migrate 83
5.4. Route 84
5.5. Controller 84
5.6. Action Index dan View 84
5.7. Action Form Insert dan View 86
5.8. Partial View Form 87
5.9. Action Insert Data 88
5.10. Action Form Update dan View 89
5.11. Action Hapus 90
6. Membuat Blog 92
6.1. Gems 92
6.2. Menjalankan Web Server 94
6.3. Mengatur Database 95
6.4. Membuat Article Scaffold 96
6.5. Menjalankan Migrate 96
6.6. Mengganti URL 96
6.7. Memasukkan TwitterBootstrap 96
6.8. Mengganti Layout Default 98
6.9. Menyesuaikan Tampilan dengan TwitterBootstrap 100
6.9.1. Index 100
6.9.2. Form 101
6.10. Autentikasi Pengguna Menggunakan Devise 102
6.11. Membatasi Akses Pengunjung ke Halaman Admin 106
6.12. Membuat Halaman Admin untuk Users 107
6.13. Relasi Antar Tabel 109
6.14. Keluar dari Halaman Autentikasi 112
6.15. Membuat Halaman Landing 112
6.16. Membuat Partial View untuk Memudahkan Mengelola Kode 113
6.17. Pagination 117
7. Snippets 119
7.1. Commandline 119
7.1.1. Membuat Project Baru 119
7.1.2. Menjalankan Server 120
7.1.3. Generate dan Destroy 120
7.1.3.1. Generate Scaffold 120
7.1.3.2. Destroy Scaffold 121
7.1.3.3. Generate Controller 122
7.1.3.4. Destroy Controller 123
7.1.3.5. Generate Model 123
7.1.3.6. Rollback dan Destroy Model 124
7.2. Menambahkan Custom Action pada RESTful 125
7.3. Form 126
7.4. Form Ajax 128
7.5. Validasi Menggunakan ActiveRecord 129
7.5.1. presence 129
7.5.2. validates_associated 130
7.5.3. length 130
7.5.4. uniqueness 131
7.6. Upload File 131
7.7. Mengirim Email Menggunakan Action Mailer 134
7.8. Basic Authentication dengan Bcrypt 136
7.9. Mengganti URL Default pada Devise 139
7.11. Basic Pagination 140
7.12. Membuat aplikasi satu halaman 144
7.13. Pengenalan singkat Sass 144
7.13.1. Variables 144
7.13.2. Nesting 145
7.13.3. Partials 146
7.13.4. Import 146
7.13.5. Mixins 147
7.13.6. Extend 147
7.13.7. Operators 148
7.14. Pengenalan singkat CoffeeScript 149
7.14.1. Functions 149
7.14.2. Objects dan Arrays 150
7.14.3. Conditional 150
7.14.4. Array Slicing dan Splicing Menggunakan Range 150
7.15. Bekerja dengan Tabel Virtual pada Database 151
7.16. Melewatkan Token melalui Ajax dengan Cara Manual 154
7.17. Menjalankan Aplikasi Ruby, Bash/Shell Script, Java, PHP dan Lain-Lain 155
8. Server Produksi 157
9. Troubleshooting 160
9.1. WEBrick Web Server Tidak Berjalan 160
9.2. MySQL Gagal di Bundle pada Ubuntu 161
9.3. Error Ketika Penambahan Gem 161
9.4. Error 'Bundle Exec' 162
9.5. Mengganti Username pada OS X 162