1. Zapiski za Ruby on Rails 3 ! Oto Brglez
To so tehnični zapiski k uporabi Ruby on Rails 3. Avtor je Oto Brglez
<oto.brglez@opalab.com>. Zapiske lahko prosto spreminjate, dopolnjujete in
razmnožujete. Avtor dokumenta mora ostati naveden!
Zadnja sprememba: sreda, 01. september 2010
1. Uporaba Heroku oblaka
1. Klic irb na heroku oblaku
heroku console
2. Push vsebine na heroku
git push heroku
3. Prenos baze na strežnik
heroku db:pusth
4. Reset baze
heroku db:reset
2. Controllers / Kontrolerji
1. Generiranje kontrolerja
rails generate controller
rails generate controller Project
rails generate controller Project addTask
2. Krajšanje odgovorov kontrolerja
respond_to :html, :js
respond_with(@project)
3. Odgovor z lokacijo
respond_with(@project, :location => [:edit, @project])
4. Nastavljanje “flashov”
redirect_to ... :notice => “Shranjeno...”
flash[:notice] = “Shranjeno”
Zapiski za Ruby on Rails 3! 1
2. Zapiski za Ruby on Rails 3 ! Oto Brglez
3. Models / Modeli
1. Relacija 1 to many (1:N)
has_many :tasks
2. Relacija Many to 1 (N:1)
belongs_to :project
3. Relacija Many-to-Many (N:M)
has_and_belongs_to_many :tags
4. Odstrani povezano
has_many :questions, :dependent => :destroy
5. Privzetno ime
def to_s
# self.name
end
6. Metoda, ki pripravlja url-je
def to_param
# “#{id}-#{slug}”
end
7. Privzetno urejanje po modelu
default_scope :order => "name ASC"
8. Gnezdeni atributi - dovoli posodabljanje
accepts_nested_attributes_for :product_sides, :allow_destroy => true
9. Validiranje prisotnosti
validates_presence_of :name
10. Validiranje numeričnosti
validates_numericality_of [:weight]
Zapiski za Ruby on Rails 3! 2
3. Zapiski za Ruby on Rails 3 ! Oto Brglez
11. Ustvarjanje objekta
@project = Project.new
12. Shranjevanje
@project.save
13. Iskanje po ID-ju
@project = Project.find(params[:project_id])
14. Iskanje vseh
@project = Project.find(:all)
15. Iskanje z generično metodo (find_by_*)
@project = Project.find_by_slug(params[:slug])
16. Brisanje zapisa
@project.destroy
17. Brisanje vseh zapisov
@project.delete_all
18. Preverba posodobljenosti atributov modela
if @payment.update_attributes(params[:payment])
4. Routes / Poti
1. Iskanje novih poti
rake routes
2. “redirect_to” s poljem
redirect_to [:edit,@project]
3. “redirect_to” s ruto
redirect_to edit_project_path(@project)
Zapiski za Ruby on Rails 3! 3
4. Zapiski za Ruby on Rails 3 ! Oto Brglez
5. HAML
1. Navadna struktura
!!!
%html
# %head
# # %title Naslov
# %body
# # %h1
2. Pogoji v HAML-u
- if ( ... pogoj ... )
# %h1 Naslov
3. Izpis spremenljivke ali klic metode
%h1=link_to “Uredi produkt”, [:edit,@product]
4. Komentar
/
# To je komentar
... se spremeni v ...
<--
# To je komentar
-->
5. Class in ID
%h1#prvi-naslov.title Zdravo svet!
... se spremeni v ...
<h1 id=”prvi-naslov” class=”title”>Zdravo svet!</h1>
6. Zanke
- @products.each do |product|
# =product
7. Prikaz vsebine
=yield :sidebar
8. Nastavljanje vsebin za sidebar
- content_for :sidebar do
# %h2 Tools
Zapiski za Ruby on Rails 3! 4
5. Zapiski za Ruby on Rails 3 ! Oto Brglez
# %p List of tools...
6. Debugging Rails / Razhroščevanje
1. Osnove
Nameščen mora biti gem “ruby-debug” (sudo gem install ruby-debug)
rails server --debugger
V vrstici, ki jo razhroščuješ vpišeš
debugger
Ko pride interpreter do točke bo v konzoli kjer teče strežnik mogoče izvajati
razhroščevanje.
2. Izpis trenutne lokacije
l
p
3. Klic razhroščevalnika iz view-a (HAML)
# Strežnik mora biti pognan z rails server --debugger in med gem-i mora biti tudi gem ruby-
debug
- debugger
Zapiski za Ruby on Rails 3! 5