An Introduction toRuby on Rails
Outline What is Ruby? Tool for Ruby. What is Rails? Major Ruby features. Rails overview. Sample RoR application and ...
What is Ruby?    Ruby is a pure object oriented programming language. It was    created on February 24, 1993 by Yukihiro ...
What is Rails?    Rails is a web application development framework written in the    Ruby language. It is designed to mak...
Must have tool #1: irb Interactive   ruby console:  Experiment    on the fly  $irb  …                   An Introductio...
Ruby in a nutshell : Like all interpreted scripting languages, you can  put code into a file. $vi test1.rb   puts “Hello...
Objects are everywhere   Everything in ruby is an object:                     An Introduction to Ruby and Rails   7
Objects have methods  Bang on the tab key in irb to see the methods that are available for  each object.                  ...
Variables   Local variables - start with lower case:      foo      bar   Global variables - start with dollar sign:   ...
Arrays         An Introduction to Ruby and Rails   10
Hashes         An Introduction to Ruby and Rails   11
Blocks & Iterators              An Introduction to Ruby and Rails   12
It’s easy to build classesruby> class Fruit                                  def set_kind(k) # a writer                   ...
Other notes on Classes   Ruby only has single inheritance(<). This makes things    simpler.                      An Intro...
Example:class Mammal def breathe   puts "inhale and exhale" endendclass Cat < Mammal def speak   puts "Meow"              ...
Few gotchas   Despite the principle of least surprise:      Zero   isn’t false:      No   increment operator (foo++). I...
RubyGems Manual http://docs.rubygems.org/ Examples:       gem install paperclip --version ">= 2.7.0"       gem uninsta...
Want to learn more Ruby?Simple and beginner’s tutorial:  http://www.troubleshooters.com/codecorn/ruby/basictutorial.htm   ...
   Browser sends requests   Controller interacts with model   Model checks with the database   Controller invokes view...
Quick Rails Demo: $ rails new RoRApp  $ cd RoRApp(Use an Aptana studio IDE)   We have 3 environments( in config/database...
Configuring the Database: If we want to configure the database as  mysql2(default database is sqllite), open the file  co...
Now we need to bundle update which installs the mysql2gem for our application.  $ bundle updateCreate a Database :    Now...
1.rails s (or) (default port is 3000)        2.rails server (or)        3.rails s -p 4000    Verify whether the rails app...
   If we want to display a user defined text or    anything in our home page, we need to create a    controller and a vie...
   Now, we have to tell Rails where your actual home    page is located. For that open the file    config/routes.rb and e...
Scaffolding    Rails scaffolding is a quick way to generate some    of the major pieces of an application. If you want    ...
File                                            Purposedb/migrate/20120606184725_create_p              Migration to create...
Running a Migration:   One of the products of the rails generate scaffold    command is a database migration. Migrations ...
   If we look in the    db/migrate/20120606184725_create_posts.rb    class CreatePosts < ActiveRecord::Migration      def...
Rails will execute this migration command and tell  you it created the Posts table.== CreatePosts: migrating  ============...
Adding a Link:   We can add a link to the home page. Open    app/views/home/index.html.erb and modify it as    follows:  ...
The Model:   The model file, app/models/post.rb isclass Post < ActiveRecord::Base  attr_accessible :content, :name, :titl...
Adding Some Validation:   Rails includes methods to help you validate the    data that you send to models. Open the app/m...
Listing All Posts   How the application is showing us the list of    Posts.   Open the file app/controllers/posts_contro...
   The HTML format(format.html) looks for a    view in app/views/posts/ with a name that    corresponds to the action nam...
<h1>Listing posts</h1><table>  <tr>    <th>Name</th>         <th>Title</th>         <th>Content</th>         <th></th>    ...
Creating an App using spree:   Spree is a full featured commerce platform written    for the Ruby on Rails framework. It ...
 Now we are going to see how we createe-commerce(spree) application.$ rails new SpreeApp$ cd SpreeApp$ spree installWould...
An Introduction to Ruby and Rails   40
Where to go for more information   Books:   Online material:      First edition of Pickaxe online for free      http:/...
An Introduction to Ruby and Rails   42
Introduction to Ruby on Rails
Upcoming SlideShare
Loading in...5
×

Introduction to Ruby on Rails

14,043

Published on

Published in: Art & Photos, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
14,043
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
86
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Introduction to Ruby on Rails

  1. 1. An Introduction toRuby on Rails
  2. 2. Outline What is Ruby? Tool for Ruby. What is Rails? Major Ruby features. Rails overview. Sample RoR application and also with Spree gem. Where to go for more information. An Introduction to Ruby and Rails 2
  3. 3. What is Ruby? Ruby is a pure object oriented programming language. It was created on February 24, 1993 by Yukihiro Matsumoto of Japan. Ruby is a general-purpose, interpreted programming language like PERL and Python.What is irb Interactive Ruby (irb) provides a shell(command prompt) for experimentation. Within the IRb shell, you can immediately view expression results, line by line. An Introduction to Ruby and Rails 3
  4. 4. What is Rails? Rails is a web application development framework written in the Ruby language. It is designed to make programming web applications easier by making assumptions about what every developer needs to get started. It allows you to write less code while accomplishing more than many other languages and frameworks. An Introduction to Ruby and Rails 4
  5. 5. Must have tool #1: irb Interactive ruby console: Experiment on the fly $irb … An Introduction to Ruby and Rails 5
  6. 6. Ruby in a nutshell : Like all interpreted scripting languages, you can put code into a file. $vi test1.rb puts “Hello ruby” $ruby test1.rbo/p: Hello ruby An Introduction to Ruby and Rails 6
  7. 7. Objects are everywhere Everything in ruby is an object: An Introduction to Ruby and Rails 7
  8. 8. Objects have methods Bang on the tab key in irb to see the methods that are available for each object. An Introduction to Ruby and Rails 8
  9. 9. Variables Local variables - start with lower case:  foo  bar Global variables - start with dollar sign:  $foo  $bar Constants and Classes – start with capital letter:  CONSTANT  Class Instance variables – start with at sign:  @foo  @bar Class variables – start with double at sign:  @@foo  @@bar An Introduction to Ruby and Rails 9
  10. 10. Arrays An Introduction to Ruby and Rails 10
  11. 11. Hashes An Introduction to Ruby and Rails 11
  12. 12. Blocks & Iterators An Introduction to Ruby and Rails 12
  13. 13. It’s easy to build classesruby> class Fruit def set_kind(k) # a writer @kind = k end def get_kind # a reader @kind end endruby> f1 = Fruit.new #<Fruit:0xfd7e7c8c>ruby> f1.set_kind("peach") # use the writer An Introduction to Ruby and Rails 13 "peach"
  14. 14. Other notes on Classes Ruby only has single inheritance(<). This makes things simpler. An Introduction to Ruby and Rails 14
  15. 15. Example:class Mammal def breathe puts "inhale and exhale" endendclass Cat < Mammal def speak puts "Meow" An Introduction to Ruby and Rails 15
  16. 16. Few gotchas Despite the principle of least surprise:  Zero isn’t false:  No increment operator (foo++). Instead use:  foo += 1  foo = foo + 1 An Introduction to Ruby and Rails 16
  17. 17. RubyGems Manual http://docs.rubygems.org/ Examples:  gem install paperclip --version ">= 2.7.0"  gem uninstall paperclip  gem list … An Introduction to Ruby and Rails 17
  18. 18. Want to learn more Ruby?Simple and beginner’s tutorial: http://www.troubleshooters.com/codecorn/ruby/basictutorial.htm An Introduction to Ruby and Rails 18
  19. 19.  Browser sends requests Controller interacts with model Model checks with the database Controller invokes view View renders next browser screen An Introduction to Ruby and Rails 19
  20. 20. Quick Rails Demo: $ rails new RoRApp $ cd RoRApp(Use an Aptana studio IDE) We have 3 environments( in config/database.yml) 1.Development 2.Test 3.Production An Introduction to Ruby and Rails 20
  21. 21. Configuring the Database: If we want to configure the database as mysql2(default database is sqllite), open the file config/database.yml and modify the database name and options.development: adapter: mysql2 encoding: utf8 database: db/development/dev username: root Password: 123456 And also we need to add myspl2 gem in Gemfile as gem mysql2 An Introduction to Ruby and Rails 21
  22. 22. Now we need to bundle update which installs the mysql2gem for our application. $ bundle updateCreate a Database :  Now we have our database is configured, it’s time to have Rails create an empty database. We can do this by running a rake command: $ rake db:create An Introduction to Ruby and Rails 22
  23. 23. 1.rails s (or) (default port is 3000) 2.rails server (or) 3.rails s -p 4000 Verify whether the rails app is working properly or not by browsing http://localhost:3000 Here the default page is rendering from public/index.html An Introduction to Ruby and Rails 23
  24. 24.  If we want to display a user defined text or anything in our home page, we need to create a controller and a view $ rails generate controller home index Rails will create several files, including app/views/home/index.html.erb and app/controllers/home_controller.rb To make this index file as the home page, 1st we need to delete the default public/index.html page $ rm public/index.html An Introduction to Ruby and Rails 25
  25. 25.  Now, we have to tell Rails where your actual home page is located. For that open the file config/routes.rb and edit as root :to => "home#index" Check whether our home page is rendering proper page or not, for that we need to start the rails serve as $ rails s An Introduction to Ruby and Rails 26
  26. 26. Scaffolding Rails scaffolding is a quick way to generate some of the major pieces of an application. If you want to create the models, views, and controllers for a new resource in a single operation, scaffolding is the tool for the job.Example:Creating a Resource for sessionApp: We can start by generating a scaffold for the Post resource: this will represent a single blog posting.$ rails generate scaffold Post name:string title:string content:text An Introduction to Ruby and Rails 27
  27. 27. File Purposedb/migrate/20120606184725_create_p Migration to create the posts table inosts.rb your database (your name will include a different timestamp)app/models/post.rb The Post modelconfig/routes.rb Edited to include routing information for postsapp/controllers/posts_controller.rb The Posts controllerapp/views/posts/index.html.erb A view to display an index of all postsapp/views/posts/edit.html.erb A view to edit an existing postapp/views/posts/show.html.erb A view to display a single postapp/views/posts/new.html.erb A view to create a new post An Introduction to Ruby and Rails 28
  28. 28. Running a Migration: One of the products of the rails generate scaffold command is a database migration. Migrations are Ruby classes that are designed to make it simple to create and modify database tables. Rails uses rake commands to run migrations, and it’s possible to undo a migration ($ rake db:migrate rollback) after it’s been applied to your database. An Introduction to Ruby and Rails 29
  29. 29.  If we look in the db/migrate/20120606184725_create_posts.rb class CreatePosts < ActiveRecord::Migration def change create_table :posts do |t| t.string :name t.string :title t.text :content t.timestamps end end At this point, we can use a rake command to run the migration: $ rake db:migrate An Introduction to Ruby and Rails 30
  30. 30. Rails will execute this migration command and tell you it created the Posts table.== CreatePosts: migrating ================================================== ==-- create_table(:posts) -> 0.0019s== CreatePosts: migrated (0.0020s) =========================================== An Introduction to Ruby and Rails 31
  31. 31. Adding a Link: We can add a link to the home page. Open app/views/home/index.html.erb and modify it as follows: <h1>Hello, Rails!</h1> <%= link_to "New Post", posts_path %>When we run the server it displays the home page as An Introduction to Ruby and Rails 32
  32. 32. The Model: The model file, app/models/post.rb isclass Post < ActiveRecord::Base attr_accessible :content, :name, :titleend Active Record supplies a great deal of functionality to our Rails models for free, including basic database CRUD (Create, Read, Update, Destroy) operations, data validation, An Introduction to Ruby and Rails 33
  33. 33. Adding Some Validation: Rails includes methods to help you validate the data that you send to models. Open the app/models/ post.rb file and edit it: class Post < ActiveRecord::Base attr_accessible :content, :name, :title validates :name, :presence => true validates :title, :presence => true, :length => {:minimum => 5} end An Introduction to Ruby and Rails 34
  34. 34. Listing All Posts How the application is showing us the list of Posts. Open the file app/controllers/posts_controller.rb and look at the index action: def index @posts = Post.all respond_to do |format| format.html # index.html.erb format.json { render :json => @posts } end end An Introduction to Ruby and Rails 35
  35. 35.  The HTML format(format.html) looks for a view in app/views/posts/ with a name that corresponds to the action name(index). Rails makes all of the instance variables from the action available to the view. Here’s app/views/posts/index.html.erb: An Introduction to Ruby and Rails 36
  36. 36. <h1>Listing posts</h1><table> <tr> <th>Name</th> <th>Title</th> <th>Content</th> <th></th> <th></th> <th></th> </tr><% @posts.each do |post| %> <tr> <td><%= post.name %></td> <td><%= post.title %></td> <td><%= post.content %></td> <td><%= link_to Show, post %></td> <td><%= link_to Edit, edit_post_path(post) %></td> <td><%= link_to Destroy, post, :confirm => Are you sure?, :method => :delete %></td> </tr><% end %></table><br /><%= link_to New post, new_post_path %> An Introduction to Ruby and Rails 37
  37. 37. Creating an App using spree: Spree is a full featured commerce platform written for the Ruby on Rails framework. It is designed to make programming commerce applications easier by making several assumptions about what most developers needs to get started. Spree is a production ready store. An Introduction to Ruby and Rails 38
  38. 38.  Now we are going to see how we createe-commerce(spree) application.$ rails new SpreeApp$ cd SpreeApp$ spree installWould you like to install the default gateways? (yes/no) [yes] yesWould you like to run the migrations? (yes/no) [yes] yesWould you like to load the seed data? (yes/no) [yes] yesWould you like to load the sample data? (yes/no) [yes] yesAdmin Email [spree@example.com]Admin Password [spree123]Would you like to precompile assets? (yes/no) [yes] yes$ rails server An Introduction to Ruby and Rails 39
  39. 39. An Introduction to Ruby and Rails 40
  40. 40. Where to go for more information Books: Online material:  First edition of Pickaxe online for free  http://www.ruby-doc.org/  why’s (poignant) guide to Ruby  http://rubyonrails.org/  Planet Ruby on Rails An Introduction to Ruby and Rails 41
  41. 41. An Introduction to Ruby and Rails 42
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×