my rails way
TRANSCRIPT
My Rails Way小蟹的Ruby on Rails學習之路
1
Who am I
• I’m 小蟹
• Master: Ruby & Ruby on Rails
• Company: PIXNET
• Site: http://belovely.tw/
• Blog: http://wildjcrt.pixnet.net/
2
Agenda
• Introduction Ruby on Rails
• Rails training course
3
Introduction Ruby on Rails
4
Ruby
• 松本行弘 まつもとゆきひろ,別名Matz
• 由於Perl與6月的誕生石pearl音同,因此Ruby以7月的誕生石ruby命名。
* http://www.ruby-lang.org/en/
* http://www.ruby-lang.org/zh_TW/ (中)
* http://ruby.tw/ (中)
5
Ruby on Rails (1)
• David Heinemeier Hanson (37signals)
• Yehuda Katz (Engine Yard)
* http://rubyonrails.org/
* http://www.rubyonrails.org.tw/ (中)
6
Ruby on Rails (2)
• A web framework for Ruby
• MVC architecture
• Agile software development 敏捷開發
- Don't Repeat Yourself 不要重複自己
- Convention over Configuration 慣例勝於配置
7
Website using Rails
• BeLovely
• Techbang
• Github
• Yellow Pages
• Basecamp
• ......more8
Regular learning roadmap
http://techiferous.com/2010/07/roadmap-for-learning-rails/
9
So...
It takes a significant investment of time to learn Rails.
10
In fact,
we already have a great training course to enter Rails.
11
Rails training course
12
2010 Ruby on Rails 書單 與 練習作業
• http://blog.xdite.net/?p=1754
- http://blog.xdite.net/?p=1807
- http://wildjcrt.pixnet.net/blog/post/26624950
‣ pw: cite-on-rails
*This training course designs by xdite.
Rails 2
13
Course purpose
• Basic knowledge
• Useful services
• Bottleneck
14
Course 0: Git
• Open a project in github.
• Practice git useful commands.
- pull, push, commit, branch, add, checkout, merge, status, diff, grep
* Peepcode 的 Git 與 Pro Git
* http://wildjcrt.pixnet.net/blog/post/26458848
15
Course 0: Editor
• vgod 的 給程式設計師的Vim入門圖解說明 全部練習一遍
- http://blog.vgod.tw/2009/12/08/vim-cheat-sheet-for-programmers/
* http://c9s.blogspot.com/2009/08/vim-hacks-coscup.html
* Oreilly 的 精通 vi 與 vim
* Pragmatic 的 TextMate: Power Editing for the Mac
16
Course 0: Linux CLI
• Peepcode 的 Meet the Command Line、Advanced Command Line 全部練過一遍
17
Reference before course
* http://rails.pixnet.net/blog/category/list/1603567
* http://wildjcrt.pixnet.net/blog/category/list/1431631
* Ruby Programming — 向 Ruby 之父學程式設計
* Ruby for Rails - Rails 開發者必備的 Ruby 學習手冊
* The Well-Grounded Rubyist
* 碼上就會:Rails敏捷開發網站
* Agile Web Development with Rails, Third Edition
* The Rails Way
* Ruby Pocket Reference
* Rails Recipes
* Advanced Rails Recipes: 84 New Ways to Build Stunning Rails Apps
18
Course 1 (1)
• Create a new rails project.
• Setup configuration.
- database.yml
- .gitignore
• Push to github.
* http://rails.pixnet.net/blog/post/22953827
19
Course 1 (2)
• Complete a basic forum.
- Forum model CRUD (scaffold)
- Post model CRUD (scaffold)
- Setting routes in this format :http://example.org/forums/1/posts/2
* http://rails.pixnet.net/blog/post/22956704
* http://ihower.tw/training/rails-tutoral.html
20
Course 2
• User can login / logout / signup.
- Guest can view all posts.
- Post needs to login forum.
- User can only edit and destroy his own posts.
• http://github.com/technoweenie/restful-authentication plugin
DRY!
21
Course 3• Forum posts order and paginate.
- params, pagination
- counter_cache
- named_scope :recent
• http://github.com/mislav/will_paginate plugin
* http://railscasts.com/episodes/23-counter-cache-column
* http://railscasts.com/episodes/108-named-scope
22
Course 4
• Attachment files
- PostAttachment model
- form_for, multipart
• http://github.com/thoughtbot/paperclip plugin
• http://github.com/technoweenie/attachment_fu plugin
23
Course 5
• Forum can manage admin accounts.
• Build backstage.
- route : namespace
- before_filter :require_is_admin
* http://railstips.org/blog/archives/2007/04/28/namespaces-added-to-routes/
24
Course 6• Rake
- create seed data
- create fake data
• http://github.com/ryanb/populator plugin
* http://railsenvy.com/2007/6/11/ruby-on-rails-rake-tutorial
* http://ryandaigle.com/articles/2009/5/13/what-s-new-in-edge-rails-database-seeding
25
Course 7 (1)
• Installing Ruby on Rails environment in a pure OS (recommend Debian / Ubuntu).
- Ruby Enterprise Edition
- MySQL
- Apache / nginx
- Passenger
- Capistrano
26
Course 7 (2)
• Deploy the practice project.
- Setup deploy.rb.
- Create an account for deploy.
- Setup ssh.
- Setup database, run migration.
- Setup virtual host.
27
Course 7 (3)
* http://wildjcrt.pixnet.net/blog/post/26624950
* http://blog.xdite.net/?p=1807
* AWDR3 的 deploy 章節
* Ruby Pocket Reference 的 capistrano 章節
28
Another Rails Training(中)
*designed by ihower
http://ihower.tw/blog/
由淺入深學習 Ruby on Rails
Ruby on Rails 實戰手冊
http://ihower.tw/rails2/
http://ihower.tw/rails3/
29
Related Link• 如何入門 Ruby on Rails?(2009)
- http://rails.pixnet.net/blog/post/27997778
• 進階學習 Ruby on Rails (2009)
- http://rails.pixnet.net/blog/post/27997784
• Rails 新手禁用條例
- http://wildjcrt.pixnet.net/blog/post/26624950
• 實際動手做 Rails 最佳實踐
- http://wildjcrt.pixnet.net/blog/post/27037216
30
Q & A
31