Ruby on Rails- www.RubyOnRails.org - Web framework, tương tự như Zend, nhưng "full stack", hoàn chỉnh từ lớp presentation tới logging.. - So sánh với các ngôn ngữ và framework khác, Ruby
Trang 1Giáo Trình Ruby on Rails
Tài Liệu Training (C) 2010 Công Ty TNHH TM - DV
Tin Học Giải Pháp Nhanh
Trang 2Ruby on Rails
- www.RubyOnRails.org
- Web framework, tương tự như Zend, nhưng "full stack", hoàn chỉnh từ lớp presentation tới logging
- Full stack:
MVC framework
ActiveRecord để truy cập Database Khuyến khích Testing (test-driven development, hay TDD)
Unit-test Functional test (test controller) Integration test (test nhiều controller) Server dạng application server chứ không phải như
Apache/PHP
Trang 3Tại Sao Cần Biết Ruby on Rails?
- Ruby Là một ngôn ngữ "thời thượng", dễ học và dễ viết
(nhưng khó master!)
- So sánh với các ngôn ngữ và framework khác, Ruby on Rails như xe đua so với xe đạp
- Nhu cầu consulting ở Mỹ đang rất phát triển Hướng chiến lược của Giải Pháp Nhanh cần được định hướng để nắm bắt nhu cầu này
Trang 4Chương Trình Training Ruby on Rails
1 Làm quen với Framework
1 Install: www.rubyonrails.org/download
2 Editor (Windows)
1 www.e-texteditor.com
Text Editor, tương tự như Textmatte, có hỗ trợ Bundle (một dạng auto-complete) Cty có bản quyền chương trình này
2 www.radrails.org
RadRails Dựa trên nền Eclipse, có debugger
3 Netbeans, tương tự như RadRails
3 Môi Trường:
1 Rails có thể chạy trên Windows như bình thường, mặc dù môi trường chuẩn là Mac OS X
2 Cần install SVN và GitGui để hỗ trợ việc check in/out code http://code.google.com/p/msysgit/
Trang 5Chương Trình Training Ruby on Rails
2 Tài liệu
http://guides.rubyonrails.org/
Đây là giáo trình chuẩn để học Rails Sau khi học xong
chapter "Getting Start" là có thể bắt đầu quen Rails và làm được
http://guides.rubyonrails.org/getting_started.html
Sách
Agile Web Development with Rails (có bản PDF trên server)
Trang 6Bài Tập #1
Xây dựng một hệ thống blog với các tính năng:
1 Cho user đăng nhập vào
2 Đăng một Post với Title và Description
3 Cho anonymous user (bất kể người dùng nào) post
comment
Mục đích của bài tập
1 Làm quen với việc install Rails và các plugins cần thiết
2 Làm quen với framework MVC
3 Làm quen với Migrations, cách truy vấn database, và xử lý form
Chú ý: khi viết tránh để bị XSS hay SQL injection!
Trang 7Các Plugins cần thiết của Rails
Đây là danh sách các plugins cần thiết mà một lập trình viên Rails cần biết:
1 will_paginate: phân trang
http://github.com/mislav/will_paginate
2 restful-authenticate: hỗ trợ việc đăng ký user
http://github.com/technoweenie/restful-authentication
3 attachment_fu: hỗ trợ upload files
http://github.com/technoweenie/attachment_fu
4 paperclip: tương tự như attachment_fu, dùng hỗ trợ upload
http://github.com/thoughtbot/paperclip
5 rmagick: dùng để xử lý hình ảnh, kết hợp với attachment_fu
http://rubyforge.org/projects/rmagick
6 capistrano: thành phần cực kỳ quan trọng, để hỗ trợ deployment
http://www.capify.org
Trang 8Bài Tập #2
Xây dựng một Online Gallery với các tính năng
1 Đăng ký user và Login dùng restful_authenticate
2 Cho user upload tạo category, dùng acts_as_category
3 Cho phép user upload hình vào một category
1 Hình upload được tự động resize lại dùng rMagick
2 Hình upload được tự động tạo thumbnail
4 Danh sách hình trong một category cần được phân trang dùng
will_paginate
1 nâng cao: paginate load trang dùng Ajax (will_paginate có hỗ trợ Ajax Renderer)
5 Viết Unit Test cho các Models trong application.
Mục tiêu:
1 Làm quen với các Plugins của Rails
2 Làm quen với upload hình và xử lý hình được upload
3 Tận dụng các tính năng trong chữ "V" (view) của Rails để tránh lập lại
code: partials, form helpers, v.v.