Erinevus lehekülje "Ruby on rails" redaktsioonide vahel

Allikas: Kuutõrvaja
(Rakenduse tekitamine)
(Paigaldamine)
 
(ei näidata sama kasutaja 22 vahepealset redaktsiooni)
4. rida: 4. rida:
  
 
Ruby on Rails on veebiarenduse raamistik ehk ''framework'', mis kasutab programmeerimiskeelt Ruby. Kui Rails on alles noor raamistik (2004), siis Ruby on juba aastast 1993, mil Yukihiro Matsumoto sai Jaapanis tööle esimese "Hello World!"-i.
 
Ruby on Rails on veebiarenduse raamistik ehk ''framework'', mis kasutab programmeerimiskeelt Ruby. Kui Rails on alles noor raamistik (2004), siis Ruby on juba aastast 1993, mil Yukihiro Matsumoto sai Jaapanis tööle esimese "Hello World!"-i.
 
Ruby't saab proovida ka otse browseris http://tryruby.hobix.com/
 
  
 
Rails on mõeldud lihtsustama ning kiirendama andmebaasidega seotud veebilehtide loomist. Rails on kirjutatud Ruby keeles ja tegemist on vabavaralise projektiga.
 
Rails on mõeldud lihtsustama ning kiirendama andmebaasidega seotud veebilehtide loomist. Rails on kirjutatud Ruby keeles ja tegemist on vabavaralise projektiga.
 
Edasine tekst on kirjutatud FreeBSDd silmas pidades, kuid peaks olema piisavalt üldine ,et kasutada kõigil Linux/UNIX süsteemidel.
 
  
 
===Rails arenduskeskond===
 
===Rails arenduskeskond===
18. rida: 14. rida:
  
 
* Mingi andmebaasi server näiteks MySQL, Postgresql
 
* Mingi andmebaasi server näiteks MySQL, Postgresql
* Ruby programeerimiskeel
+
* Ruby programeerimiskeele vahendid
* rubygem-rails koos s2ltuvustega
+
* rubygem-rails koos sltuvustega
 
 
===Uue projekti start vana===
 
 
 
Uue projekti loome käsuga
 
 
 
rails ideenimi
 
 
 
rails 2.0 puhul ,et vältida mysqli tuleb kirjutada
 
 
 
rails -d mysql test
 
 
 
Genereerib kausta test
 
 
 
seejärel stardime arenduseks vajaliku webrick serveri
 
 
 
cd test
 
script/server -d -p 3000
 
=> Booting WEBrick...
 
=> Rails application started on http://0.0.0.0:3000
 
[2008-01-08 18:27:50] INFO  WEBrick 1.3.1
 
[2008-01-08 18:27:50] INFO  ruby 1.8.6 (2007-09-24) [i386-freebsd7]
 
 
 
võti -p 3000 stardib veebiserveri pordile 3000
 
ning -d paneb tööle taustal, kasutades debumiseks on soovitatav see ärajätta
 
 
 
Nb! kui muudate database.yml faili tuleb veebiserverit taaskäivitada
 
 
 
nüüd peaksime enda projekti nägema aadressil http://www.nimi.ee:3000
 
 
 
[[Pilt:Railsiveb.jpg]]
 
 
 
Seejärel anname käsu mis loob uue kontrolleri.
 
 
 
ruby script/generate controller katsetus
 
 
 
Railsis on mudelid (model) ja controllerid (controller )
 
See kõik asub siis stiilis aadress/kontroller. Näiteks www.nimi.ee kuhu
 
lõime hetk tagasi kontrolleri nimega katsetus.
 
Kohe peale loomist oli www.nimi.ee/katsetus kättesaadav. Models on kasutusel kui sql andmete hoidjad, meil on kasutuses mudel nimega test. Raisi controlleri failis defineeritakse asju, mida sinna www.nimi.ee/test/? kohta panna äsjaloodud kontrolleril on seal näiteks index, aee on avaleht.
 
Lisame näiteks indexile väikese teksti:
 
 
 
avame faili test/app/controllers/katsetus_controller
 
kus asub class KatsetusControllerning tekitame sinna järgneva sisu
 
 
 
class KatsetusController < ApplicationController
 
 
  def index
 
    render :text => "tekst index lehele"
 
  end
 
 
end
 
 
 
ja liikudes urlile http://www.nimi.ee:8000/katsetus
 
 
 
peaksime nägema kirja '''tekst index lehele'''
 
 
 
Edasi võib lugeda juba õpetusi stiilis
 
 
 
http://www.onlamp.com/pub/a/onlamp/2005/03/03/rails.html
 
 
 
===Railsi logid===
 
 
 
Logid võivad railsil kasvada päris suureks seetõttu oleks mõistlik need roteerima panna
 
 
 
näiteks sobiks logrotate jaoks selline blokk
 
 
 
/www/projekt/rails/log/production.log {
 
    daily
 
    rotate 14
 
    size 5M
 
    compress
 
    create 640
 
    missingok
 
    # vaja ka teha railsile restart, kui kasutuses moodulina siis näiteks selliselt
 
    touch /www/projekt/rails/tmp/restart.txt
 
  }
 
 
 
 
 
===Ruby on Rails===
 
 
 
TODO
 
  
 
====Paigaldamine====
 
====Paigaldamine====
116. rida: 31. rida:
  
 
  # gem install rails --version 2.0.2
 
  # gem install rails --version 2.0.2
 +
 +
'''Paigaldamine Gentoos'''
 +
 +
Emergeda tuleb pakett www-apache/passenger ning jälgida
 +
edasise seadistuse osas selle paketi poolt jagatud juhiseid.
  
 
====Rakenduse ehk projekti tekitamine====
 
====Rakenduse ehk projekti tekitamine====
122. rida: 42. rida:
  
 
* tekitada rakendusele vastav kataloogistruktuur
 
* tekitada rakendusele vastav kataloogistruktuur
 +
 +
Postgresql puhul
  
 
  $ rails -D postgresql contactlist
 
  $ rails -D postgresql contactlist
155. rida: 77. rida:
 
   port: 5432
 
   port: 5432
 
  ...
 
  ...
 +
 +
Mysql puhul
 +
 +
rails -d mysql test
 +
 +
===Sissejuhatus mudelitesse ja kontrolleritesse===
 +
 +
Railsis on mudelid (model) ja controllerid (controller)
 +
See kõik asub siis stiilis aadress/kontroller. Näiteks www.nimi.ee kuhu
 +
lõime hetk tagasi kontrolleri nimega katsetus.
 +
Kohe peale loomist oli www.nimi.ee/katsetus kättesaadav. Models on kasutusel kui sql andmete hoidjad, meil on kasutuses mudel nimega test. Raisi controlleri failis defineeritakse asju, mida sinna www.nimi.ee/test/? kohta panna äsjaloodud kontrolleril on seal näiteks index, aee on avaleht.
 +
Lisame näiteks indexile väikese teksti:
  
 
====Mudeli tekitamine====
 
====Mudeli tekitamine====
198. rida: 132. rida:
 
Lisaks annab kinnitust õnnestumisest, kui PostgreSQL andmebaasi vastavasse tabelisse on toimunud sissekanne.
 
Lisaks annab kinnitust õnnestumisest, kui PostgreSQL andmebaasi vastavasse tabelisse on toimunud sissekanne.
  
 +
===Kontrolleri tekitamine===
 +
 +
Seejärel anname käsu mis loob uue kontrolleri.
 +
 +
ruby script/generate controller katsetus
 +
 +
avame faili test/app/controllers/katsetus_controller
 +
kus asub class KatsetusControllerning tekitame sinna järgneva sisu
 +
 +
class KatsetusController < ApplicationController
 +
 +
  def index
 +
    render :text => "tekst index lehele"
 +
  end
 +
 +
end
 +
 +
ja liikudes urlile http://www.nimi.ee:8000/katsetus
 +
 +
peaksime nägema kirja '''tekst index lehele'''
  
====Rakenduse startimine====
+
====Rakenduse veebiliidese startimine====
  
 
seejärel stardime arenduseks vajaliku webrick serveri
 
seejärel stardime arenduseks vajaliku webrick serveri
219. rida: 173. rida:
 
[[Pilt:Railsiveb.jpg]]
 
[[Pilt:Railsiveb.jpg]]
  
====Kontrolleri tekitamine====
+
===Railsi logid===
  
Kontrolleri tekitamiseks sobib öelda
+
Logid võivad railsil kasvada päris suureks seetõttu oleks mõistlik need roteerima panna
  
$ ruby script/generate controller Katsetus
+
näiteks sobiks logrotate jaoks selline blokk
  
Railsis on mudelid (model) ja controllerid (controller ) See kõik asub siis stiilis aadress/kontroller. Näiteks www.nimi.ee kuhu lõime hetk tagasi kontrolleri nimega katsetus. Kohe peale loomist oli www.nimi.ee/katsetus kättesaadav. Models on kasutusel kui sql andmete hoidjad, meil on kasutuses mudel nimega test. Raisi controlleri failis defineeritakse asju, mida sinna www.nimi.ee/test/? kohta panna äsjaloodud kontrolleril on seal näiteks index, aee on avaleht. Lisame näiteks indexile väikese teksti:
+
/www/projekt/rails/log/production.log {
 +
    daily
 +
    rotate 14
 +
    size 5M
 +
    compress
 +
    create 640
 +
    missingok
 +
    # vaja ka teha railsile restart, kui kasutuses moodulina siis näiteks selliselt
 +
    touch /www/projekt/rails/tmp/restart.txt
 +
  }
 +
 
 +
ja liikudes urlile http://www.nimi.ee:8000/katsetus
  
avame faili test/app/controllers/katsetus_controller kus asub class KatsetusControllerning tekitame sinna järgneva sisu
+
peaksime nägema kirja "Hello world"
  
class KatsetusController < ApplicationController
+
===Lingid===
 
  def index
 
    render :text => "Hello world"
 
  end
 
 
end
 
  
ja liikudes urlile http://www.nimi.ee:8000/katsetus
+
* [[Ruby]]
  
peaksime nägema kirja "Hello world"
+
* http://www.onlamp.com/pub/a/onlamp/2005/03/03/rails.html

Viimane redaktsioon: 10. november 2010, kell 17:50

Ruby on Rails

Sissejuhatus

Ruby on Rails on veebiarenduse raamistik ehk framework, mis kasutab programmeerimiskeelt Ruby. Kui Rails on alles noor raamistik (2004), siis Ruby on juba aastast 1993, mil Yukihiro Matsumoto sai Jaapanis tööle esimese "Hello World!"-i.

Rails on mõeldud lihtsustama ning kiirendama andmebaasidega seotud veebilehtide loomist. Rails on kirjutatud Ruby keeles ja tegemist on vabavaralise projektiga.

Rails arenduskeskond

Installime vajalikud päkitsad railsile

Paigaldada on vaja

  • Mingi andmebaasi server näiteks MySQL, Postgresql
  • Ruby programeerimiskeele vahendid
  • rubygem-rails koos sltuvustega

Paigaldamine

RoR paigaldamiseks sobib öelda Debian operatsioonisüsteemis

# apt-get install rails

Railsi gemist paigaldamiseks tuleb esiteks installida arvutiss ruby gems pakett ning seejärel vaadata mis versioon railsist on hetkel kõige viimane. Selleks tuleb anda käsk

# gem search rails --remote

Mis tekitab nimekirja railsi aktiivsetest versioonidest mida annab paigadada. Viimane versioon selle teksti kirjutamise hetkel on 2.0.2 nii ,et installime selle andes käsu

# gem install rails --version 2.0.2

Paigaldamine Gentoos

Emergeda tuleb pakett www-apache/passenger ning jälgida edasise seadistuse osas selle paketi poolt jagatud juhiseid.

Rakenduse ehk projekti tekitamine

RoR rakenduse tekitamiseks tuleb

  • tekitada rakendusele vastav kataloogistruktuur

Postgresql puhul

$ rails -D postgresql contactlist
  • tekitada andmebaas, nt PostgreSQL
create table contacts (
id serial not null,              
first_name varchar(100)  not null,
last_name  varchar(100)  not null,                     
address    varchar(255)  not null,                              
city       varchar(100)  not null,                                       
state      varchar(2)    not null,                                                
country    varchar(100)  not null,
phone      varchar(15)   not  null,
email      varchar(100) ,
CONSTRAINT pk_id PRIMARY KEY (id)
);

ning kohendada baasi ligipääs seadistusfailis

config/database.yml

Nt selliselt

development:
  adapter: postgresql
  encoding: unicode  
  database: contactlist_development
  username: contactlist
  password: parool
  host: 192.168.1.247 
  port: 5432
...

Mysql puhul

rails -d mysql test

Sissejuhatus mudelitesse ja kontrolleritesse

Railsis on mudelid (model) ja controllerid (controller) See kõik asub siis stiilis aadress/kontroller. Näiteks www.nimi.ee kuhu lõime hetk tagasi kontrolleri nimega katsetus. Kohe peale loomist oli www.nimi.ee/katsetus kättesaadav. Models on kasutusel kui sql andmete hoidjad, meil on kasutuses mudel nimega test. Raisi controlleri failis defineeritakse asju, mida sinna www.nimi.ee/test/? kohta panna äsjaloodud kontrolleril on seal näiteks index, aee on avaleht. Lisame näiteks indexile väikese teksti:

Mudeli tekitamine

$ ruby script/generate model Contact
  • Veenduda, et mudelit saab Rails konsoolilt kasutada
$ ruby script/console
Loading development environment (Rails 2.1.0)
>> my_contact = Contact.new
=> #<Contact id: nil, first_name: nil, last_name: nil, \
  address: nil, city: nil, state: nil, country: nil, phone: nil, email: nil>
>> my_contact.first_name = 'Priit'
=> "Priit"
>> my_contact.last_name = 'Kask'
=> "Kask"
>> my_contact.address = 'Loomaaia tee 1'
=> "Loomaaia tee 1"
>> my_contact.city = 'Tartu'            
=> "Tartu"
>> my_contact.state = 'TR'
=> "Tartu"
>> my_contact.country = 'Eesti'
=> "Eesti"
>> my_contact.phone = '54331'  
=> "54331"
>> my_contact.email = 'priit@loomaaed.tartu.ee'
=> "priit@loomaaed.tartu.ee"

>> my_contact.save
=> true

>> result = Contact.find(:first)
=> #<Contact id: 3, first_name: "Priit", last_name: "Kask", address: "Loomaaia tee 1", \
  city: "Tartu", state: "TR", country: "Eesti", phone: "54331", email: "priit@loomaaed.tartu.ee">

>> puts result.first_name
Priit
=> nil

Lisaks annab kinnitust õnnestumisest, kui PostgreSQL andmebaasi vastavasse tabelisse on toimunud sissekanne.

Kontrolleri tekitamine

Seejärel anname käsu mis loob uue kontrolleri.

ruby script/generate controller katsetus 

avame faili test/app/controllers/katsetus_controller kus asub class KatsetusControllerning tekitame sinna järgneva sisu

class KatsetusController < ApplicationController 

 def index
   render :text => "tekst index lehele"
 end

end

ja liikudes urlile http://www.nimi.ee:8000/katsetus

peaksime nägema kirja tekst index lehele

Rakenduse veebiliidese startimine

seejärel stardime arenduseks vajaliku webrick serveri

# cd contactlist
# script/server -d -p 3000
=> Booting WEBrick...
=> Rails application started on http://0.0.0.0:3000
[2008-01-08 18:27:50] INFO  WEBrick 1.3.1
[2008-01-08 18:27:50] INFO  ruby 1.8.6 (2007-09-24) [i386-freebsd7]

võti -p 3000 stardib veebiserveri pordile 3000 ning -d paneb tööle taustal, kasutades debumiseks on soovitatav see ärajätta

Nb! kui muudate database.yml faili tuleb veebiserverit taaskäivitada

nüüd peaksime enda projekti nägema aadressil http://www.nimi.ee:3000

Railsiveb.jpg

Railsi logid

Logid võivad railsil kasvada päris suureks seetõttu oleks mõistlik need roteerima panna

näiteks sobiks logrotate jaoks selline blokk

/www/projekt/rails/log/production.log {
   daily
   rotate 14
   size 5M
   compress
   create 640
   missingok
   # vaja ka teha railsile restart, kui kasutuses moodulina siis näiteks selliselt
   touch /www/projekt/rails/tmp/restart.txt
 }

ja liikudes urlile http://www.nimi.ee:8000/katsetus

peaksime nägema kirja "Hello world"

Lingid