• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Rochester on Rails: Introduction to Rails
 

Rochester on Rails: Introduction to Rails

on

  • 2,083 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,083
Views on SlideShare
2,067
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!