Upload
nenad-milenkovic
View
22
Download
0
Embed Size (px)
DESCRIPTION
Kroz izradu Specijalističkog rada obradjena je tehnologija Ruby on Rails kroz praktičnu realiaciju portala za Fiziku koji je namenjen djacima osnovnih škola.Kroz rad je obuvaćen kompletan postupak instalacije potrebnih alata pod Windows operativnim sistemom kao što su WAMP , RoR , JetBrains-IDE kao i njihovo podešavanje.Čitalac se kroz 10 poglavlja upoznaje sa načinom na koji se formira cela aplikacija (portal) , takodje obuhvaćene su sve bitne tehnologije vezane za RoR kao što su Zurb-Foundation,Devise,Simple Form,MySQL i tako dalje.
Citation preview
web
Ruby on Rails
Autor:
o web , .
o Ruby on Rails (RoR)
web
o Ruby je
o web
o RoR je open source
o RoR MVC
o Ruby
o DRY (dont repeat yourself)
(Andy Hunt)
(Dave Thomas), Ruby on Rails .
.
o "Convention over configuration"
.
o PhpMyAdmin MySQL
o PHP
o ySQL
o Apache Server
o Ruby
o Rails freamework
o JavaScript interpreter
o
o
o Web
:
Ruby :
www.rubyinstaller.org
Ruby on Rails
: www.railsinstall.org
o Windows :
/> ruby v
/> gem install rails --no-rdoc --no-ri
/> gem list --local rails
/> rails _4.0.0_ --version
/> rails v
o MySQL ( )
o PostgreSQL
o SQLite ( RoR )
o Oracle
o DB2
o Windows
:
> gem install mysql -d
o Command Line ( )
.
GIT (VC)
Windows CMD
o - Rails
.
Notepad ++
Sublime Text 2
o IDE (Integrated development environment)
,
.
o IDE- Rails :
RubyMine 5.4
Eclillipse +Aptana plugin
Aptana Studio 3
NetBeams
GIT editor
Code Editor
Test & Debugging App
Bundler
Rake
Smart coding assistance
Automatic deployment
via FTP or SFTP
Database Tools
o Ruby
o MVC
o .erb ( .html.erb)
o Ruby HTML kodu
o Ruby C-. : Smarttalk, Eiffel, Lisp Perl.
o 1993. Yukihiro Matsumoto . : I wanted a scripting language that was more powerful than Perl, and more object oriented than Python. Thats why I decided to design my own language.
o Ruby a , 2005. , Ruby on Rails.
o , Apple RoR Mac S , Leopard.
o .rb
o Ruby :
puts 'Hello, world!' #
puts 'blink ' * 4
var = 5 * (1+2) # e
@var1= 5 * (1+2) # instance
puts var
name = gets.chomp #
names = ['Ada', Nenad', Zoran'] #
puts names
puts names[1]
seasons =
{"winter"=>0,"summer"=>10,"spring"=>25,"autmn"=>12}
puts seasons["winter"] #Hash
def say_goodnight(name) #
result = 'Good night, ' + name
return result
end
puts say_goodnight(Nenad)
class Person # Person
def hello # hello puts 'hello' end end person1 = Person.new # person1.hello
o 1979.
. : , view ( Models, Views, Controllers).
o Controller . , View-a .
o View , .
o Model .
Browser Controller
Model Database
View
odluke
podaci prikaz
o web , , . , , , . , web .
o :
email encrupted_password
reset_password_token reset_password_sent_at remember_created at sign_in_cont carent_sign_in_at last_sign_in_at
carent_sign_in_ip last_sign_in_ip
admin
nivo_takmicenja
razred godina testovi resenje id_zadatka opis
naslov ime prezime email a_email poruka
razred oblast opis Zadatak
Testovi
Kontakt
Korisnici
Zadaci
korisnik Naslova
Strana
Fizika
o HTML5
o SaSS (CSS3)
o JavaScript
o jQuery
o GIT
o WBrick Server
o MySQL
o RoR
o Rails Get-plugin (Gem)
o Gem- web
:
Zurb-Faundation;
Devise - ;
Simple_Form - ;
Carrierwave - upload pdf, .jpg public
;
Will_paginate -
Role-model -
;
Turbolinks - RoR ;
jQuery-rails - JavaScript-
o C:\ > cd C:\WWW\RoR\PROJEKTI
o
> rails new FizikaPortal_Radni mysql d
o Windows
:
> cd FizikaPortal_Radni
o Windows WEBrick
:
> rails s
o :
o Localhost:3000 ( )
ctrl-c
o rake
:
> rake db:create
o mysql :
> mysql
o simple_form Gem :
> rails generate simple_form:install foundation
o zurb-foundation Gem :
> rails g foundation:install
o scaffold:
rails generate scaffold ime ime_promenjive1:tip_promenjive ime _promenjive2:tip_promenjive
o :
> rails generate scaffold test nivo_takmicenja:string razred:integer godina:date testovi:string resenje:string id_zadatka:string opis:string
o rake
(routes.rb):
>rake routes
o Views _form.html.erb
edit.html.rb
index.html.rb
new.html.rb
show.html.rb
o Models
test.rb
o Conrollers
test_controllers.rb
layout/aplication.html.erb
()
tests/
o Will paginate Gem-a
:
(app/controllers/test_controller.rb)
def index
@tests =Test.paginate(:page =>params[:page], :per_page =>
10).search(params[:search])
nd
(app/views/test/index.html.erb)
.# Tabela
(app/models/test.rb)
def index
@tests =Test.paginate(:page => params[:page], :per_page =>
10).search(params[:search])
end
(app/view/test/index.html.erb)
.....................
..........................................
def self.search(search)
if search
find(:all, :conditions => ['nivo_takmicenja
LIKE ? OR razred LIKE ? ', "%#{search}%",
"%#{search}%" ])
else
find(:all)
end
end
(app/models/test.rb)
(app/models/test.rb)
Unesi trazeni NIVO TAKMICENJA ili
RAZRED
'get' do %>
nil, :razred
=> nil %>
Carrierwave.
> gem install carrierwave
> rails generate uploader testovi create
o e :
(app/uploader/testovi_uploader.rb)
class TestoviUploader < CarrierWave::Uploader::Base
storage :file
def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
o app/views/_form.html.erb :
Unesi Test (.pdf)
o Users Devis :
> rails generate devise:install
o Devise views:
> rails generate devise:views
o User Devise:
> rails generate devise User
o FizikaPortal_Radni:
> rake db:migrate
o window- admin
users:
>rails generate migration AddUserIdToUsers admi
n:boolean
>rake db:migration
o :
o 1-
o 2- .
o before_action :authenticate_user! (app/controler/tests_controler.rb)
o (app/view/aplication.html.erb)
o
.............
..............
o (app/views/tests/new.html.erb)
o (app/views/tests/edit.html.erb)
(app/views/tests/_form.html.rb)
o (app/views/tests/show.html.rb)
..
Nivo takmicenja :
............
o Zurb-foundation Gem
o grid template-a zurb-foundation
framework-
Menu
O Fizici
Web
Fizika
Databa
se
URL: /users/inde
x
Route Rails
View (index.html.erb)
Model Active
Record
(user.rb)
Controller
(users_controller.rb)
1
2
3
4
5
8 6
7
/user index
User.all @user HTML
HTML
RoR
o Claud Host
o GITHUB+GIT
o Ruby on Rails open-source
,
.
o
Ruby framework
Rails-a
.
o
open-source
.