Стажировка-2013, разработчики, занятие 16. ruby on rails
TRANSCRIPT
RUBY ON RAILSframework
Wednesday, August 21, 13
Что это?
Веб-ориентированная среда разработки с открытым кодом, оптимизировання для счастья программиста.
Она позволяет писать красивый код, используя соглашения вместо конфигураций.
Wednesday, August 21, 13
Как начать
Ruby
RubyGems - менеджер пакетов
gem install rails
Wednesday, August 21, 13
CRUD
Операция SQL HTTP
create insert POST
read select GET
update update PUT
delete delete DELETE
Wednesday, August 21, 13
ActiveRecordПусть существует таблица в БД. Для данной таблицы создаётся специальный класс, являющийся отражением (представлением) таблицы, таким образом, что:
• каждый экземпляр данного класса соответствует одной записи таблицы;• при создании нового экземпляра класса (и заполнении соответствующих полей) в таблицу
добавляется новая запись;• при чтении полей объекта считываются соответствующие значения записи таблицы баз
данных;• при изменении (удалении) какого-либо объекта изменяется (удаляется) соответствующая ему
запись.
Post.find(5) SELECT * FROM posts WHERE id = 5
Wednesday, August 21, 13
ActiveRecordPost.joins(:comments)
SELECT posts.* FROM posts INNER JOIN comments ON comments.post_id = posts.id
Wednesday, August 21, 13
Схема БД
posts comments
id integer
title string
content text
id integer
post_id integer
content text
Wednesday, August 21, 13
Немного кода<?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
Ruby
5.times { print "Hello Ruby!" }
['toast', 'cheese', 'wine'].each { |food| print food.capitalize }
Wednesday, August 21, 13
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
Batteries included
HAML/Slim
SCSS/SASS
CoffeeScript
Wednesday, August 21, 13
Почитать
http://ru.wikibooks.org/wiki/Ruby
http://guides.rubyonrails.org/
Wednesday, August 21, 13