Introduction to Ruby&Rails

scacchicgardenΛογισμικό & κατασκευή λογ/κού

13 Δεκ 2013 (πριν από 3 χρόνια και 5 μήνες)

67 εμφανίσεις

Introduction to Ruby&Rails

Yuri Veremeyenko

Monica Verma


Presentation Structure

1.
Ruby


Overview


Syntax

2.
Rails


Introduction


What makes Rails a good choice?


Typical Web Request Flow


ROR and MVC

3.
On
-
spot project creation


Basic application (blog)



Scaffold, Migrations, Routing, etc.

4.
Conclusions

Ruby
-

overview


Originally from Japan, first public version
1995


Multipurpose: from scripting to fully fledged
OO applications


Current Version : 1.8.7


Web Site:
http://www.ruby
-
lang.org/


Ruby in your web browser:
http://tryruby.hobix.com/

Ruby


syntax examples


Everything is an object

255.times {|i| puts "Hello #{i}" }


Arrays

a = [1, 'hi', 3.14, 1, 2]

a.reverse

a.each { |x| puts x }


Hashes

h = {:water => 'wet', :fire => 'hot'}

h.each_pair do |key, value| puts "#{key} is #{value}"; end


Ranges

(0..2).each {|i| puts i} #=> [0, 1, 2]

Ruby


syntax examples II


Classes & Methods

class Person

attr_accessor :name, :age

def initialize(name, age)


@name, @age = name, age

end

end

p = Person.new("jay",
29
)


p.name

>> "jay”


Exceptions

raise ArgumentError,

"Illegal arguments!”

...

begin

# Do something

rescue

# Handle exception

end


Ruby


syntax examples III


Returning multiple parameters

class MyClass < MyAbstractClass

def my_method

return 1, 2

end

end

a = MyClass.new

b, c = a.my_method


Reflection

a = MyClass.new

a.public_methods

a.respond_to? "mymethod"


Ruby on Rails



an open source web framework that
optimizes for programmer happiness and
sustainable productivity



This translates to:


Usage of MVC pattern


Scripts and generators for common actions


Use of Ruby's object nature


DRY (don't repeat yourself)



Support for most Web
2.0
fancy stuff

ROR: installation


Ruby


The ruby interpreter (
1.8.6
recommended)



Gem


Gem is ruby package manager


Database (postgres / mysql / sqlite)



Install as you would normally


Bind Ruby and your Database


Normally available as gem


Rails and other Gems and libs, as required


Libopenssl
-
ruby, ruport, rdoc, irb, etc..


IDE

What are typical activities

for web application?


Display form


Validate form


Display form errors


Save form


Show aggregated
data (and more
forms)


What makes ROR a good
choice?


MVC


ORM (ActiveRecord with associations)



Data validation standardized


Well structured application layout


Generators for common tasks


Testing support

ROR in typical web request

Fig.
1
Web request flow

ROR and MVC


Model : database logic, business data logic


Controller : request processing, couples View and
Model


View : sets of templates to render HTML

Fig.
2
MVC in Rails

Generators and migrations


Generators can create skeletons for
models/views/controllers/ or scaffold

>ruby script/generate scaffold MyEntity


Migrations provide DB synchronization

class CreatePosts < ActiveRecord::Migration


def self.up


create_table :posts do |t| {


t.column :title, :string ; t.column :body, :text }


end


def self.down


drop_table :posts ; end; end


Inside Rails

Fig.3 Rails Model code

Example Application


A sample blog application in
20
minutes


Create Posts and Comments


Scaffolding, migrations, rake


Specifying relationships in Models


Customizing generated Controllers


Very basic HTML

Conclusions

Ruby on Rails:



Is an MVC framework for Web application


Has efficient ActiveRecord ORM


Supports migrations


Has generators for common tasks


Supports unit testing


Provides AJAX support via prototype


RESTful since v2.0