Rochester on Rails: Introduction to Rails
Upcoming SlideShare
Loading in...5
×
 

Rochester on Rails: Introduction to Rails

on

  • 2,118 views

An entry-level introduction to Rails (circa 1.13) I gave at Rochester on Rails. Covers the history, reasons you may use it in a project, and basic architecture.

An entry-level introduction to Rails (circa 1.13) I gave at Rochester on Rails. Covers the history, reasons you may use it in a project, and basic architecture.

Statistics

Views

Total Views
2,118
Views on SlideShare
2,102
Embed Views
16

Actions

Likes
0
Downloads
20
Comments
0

3 Embeds 16

http://jayunit.net 14
http://209.85.135.104 1
http://localhost 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Rochester on Rails: Introduction to Rails Rochester on Rails: Introduction to Rails Presentation Transcript

  • Jason Morrison January 19, 2006 Rochester on Rails Ruby on Rails Sustainable Productivity for Web Application Development
  • History
  • July 2004 David Heineimeier Hansson
  • Extracted from Basecamp
  •  
  • 37signals
  •  
  • Hundreds of contributors Thousands of revisions, tickets, and patches
  • Rails 1.0 December 13, 2005
  •  
  • What is Rails?
  • Full Stack
  • Web Application Framework
  • It’s all Ruby!
  • (okay, except one file)
  • (here it is) database.yml development: adapter: sqlite dbfile: db/dev.db test: adapter: sqlite dbfile: db/test.db production: adapter: sqlite dbfile: db/prod.db
  • Everything else is Ruby!
  • ActiveRecord
  • ActionPack
  • ERb views
  • ActionWebService
  • ActionMailer
  • Unit Testing
  • AJAX Helpers
  • Key Concepts
  • DRY: Don’t Repeat Yourself
  • +
  • Convention over configuration
  • =
  • Less code!
  • Order.hbm.xml 01 <hibernate-mapping> 02 <class name=&quot;models.Order&quot; table=&quot;ORDERS&quot; 03 dynamic-update=&quot;true&quot; dynamic-insert=&quot;false&quot;> 06 <id name=&quot;id&quot; column=&quot;id&quot; type=&quot;java.lang.Long&quot; 07 unsaved-value=&quot;null&quot;> 08 <generator class=&quot;identity&quot;/> 09 </id> 10 <set name=&quot;items&quot; lazy=&quot;false&quot; inverse=&quot;false&quot; 11 cascade=&quot;none&quot; sort=&quot;unsorted&quot;> 12 <key column=&quot;id&quot;/> 13 <one-to-many class=&quot;models.Item&quot;/> 14 </set> 15 <property name=&quot;name&quot; type=&quot;java.lang.String&quot; 16 update=&quot;true&quot; insert=&quot;true&quot; 17 access=&quot;property&quot; column=&quot;name&quot;/> 18 </class> 19 </hibernate-mapping>
  • Order.java 01 public class Order { 02 private Set items; 03 private String name; 04 private Long id; 05 06 public Long getId() { return id;} 07 public void setId(Long id) { this.id = id;} 08 public Set getItems() { return items;} 09 public void setItems(Set items) { this.items = items; } 10 public String getName() { return name; } 11 public void setName(String name) { this.name = name; } 12 }
  • order.rb 01 class Order < ActiveRecord::Base 02 has_many :items 03 end
  • Rails is expressive
  • class Project < ActiveRecord::Base belongs_to :portfolio has_one :project_manager has_many :milestones has_and_belongs_to_many :categories validates_presence_of :name, :description validates_acceptance_of :non_disclosure_agreement validates_uniqueness_of :key end
  • #We’re slashing prices, all books are now half off! Product.find( :all, :conditions => “kind=‘book’” ) do |product| product.price *= 0.5 product.save end
  • Increases Programmer Rails increases programmer…
  • Increases Programmer Rails increases programmerhappiness!
  • How does it fit together?
  • Model View Controller
  • Model View Controller ActiveRecord ActionPack } }
  •  
  • Ready, set, code!