Стажировка-2013, разработчики, занятие 16. Ruby on Rails
Transcript of Стажировка-2013, разработчики, занятие 16. Ruby on Rails
![Page 1: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/1.jpg)
RUBY ON RAILSframework
Wednesday, August 21, 13
![Page 2: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/2.jpg)
Что это?
Веб-ориентированная среда разработки с открытым кодом, оптимизировання для счастья программиста.
Она позволяет писать красивый код, используя соглашения вместо конфигураций.
Wednesday, August 21, 13
![Page 3: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/3.jpg)
Как начать
Ruby
RubyGems - менеджер пакетов
gem install rails
Wednesday, August 21, 13
![Page 4: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/4.jpg)
CRUD
Операция SQL HTTP
create insert POST
read select GET
update update PUT
delete delete DELETE
Wednesday, August 21, 13
![Page 5: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/5.jpg)
ActiveRecordПусть существует таблица в БД. Для данной таблицы создаётся специальный класс, являющийся отражением (представлением) таблицы, таким образом, что:
• каждый экземпляр данного класса соответствует одной записи таблицы;• при создании нового экземпляра класса (и заполнении соответствующих полей) в таблицу
добавляется новая запись;• при чтении полей объекта считываются соответствующие значения записи таблицы баз
данных;• при изменении (удалении) какого-либо объекта изменяется (удаляется) соответствующая ему
запись.
Post.find(5) SELECT * FROM posts WHERE id = 5
Wednesday, August 21, 13
![Page 6: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/6.jpg)
ActiveRecordPost.joins(:comments)
SELECT posts.* FROM posts INNER JOIN comments ON comments.post_id = posts.id
Wednesday, August 21, 13
![Page 7: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/7.jpg)
Схема БД
posts comments
id integer
title string
content text
id integer
post_id integer
content text
Wednesday, August 21, 13
![Page 8: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/8.jpg)
Немного кода<?php
class bannerActions extends sfActions {
public function executeShow(sfWebRequest $request) {
$this->banner = Doctrine::getTable(‘Banner’)->findById($request->getParameter(‘id’));
}
} Ruby On Rails:
class BannerController < ApplicationController
def show
@banner = Banner.find params[:id]
end
end
Symfony:
Wednesday, August 21, 13
![Page 9: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/9.jpg)
Ruby
5.times { print "Hello Ruby!" }
['toast', 'cheese', 'wine'].each { |food| print food.capitalize }
Wednesday, August 21, 13
![Page 10: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/10.jpg)
Ruby!Then "I should see all group members in the list" do
@group.members.each do |member| page.should have_content member.last_name
endend
Wednesday, August 21, 13
![Page 11: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/11.jpg)
Batteries included
HAML/Slim
SCSS/SASS
CoffeeScript
Wednesday, August 21, 13
![Page 12: Стажировка-2013, разработчики, занятие 16. Ruby on Rails](https://reader033.fdocuments.in/reader033/viewer/2022042715/559752ad1a28abe75b8b4687/html5/thumbnails/12.jpg)
Почитать
http://ru.wikibooks.org/wiki/Ruby
http://guides.rubyonrails.org/
Wednesday, August 21, 13