Все материалы для конспекта взяты с rubyschool.us
Grid - сетка, bootstrap разбивает экран на 12 единиц
<div class="row">
<div class="col-md-6">
</div>
</div>
В HTML если сделать class="col-md-6" то возьмет половину из 12 единиц
Плохие программисты беспокоятся о коде, хорошие программисты беспокоятся о структурах данных и их взаимодействии.
extract variable - записать кусок кода в переменную, чтобы избегать повторения
function add_to_cart (id) {
var key = 'product_'+ id;
var x = window.localStorage.getItem(key);
x = x*1 + 1;
window.localStorage.setItem(key, x);
}
ID забираем со страницы представления:
<%@products.each do |p| %>
<button onclick="add_to_cart(<%=p.id%>)">add to cart</button>
<% end %>
Отображение списка добавленных продуктов в JS (alert ом)
function show_cart() {
list = [];
for (var i = 0, len = localStorage.length; i < len; i++)
{
key = localStorage.key(i);
list.push(key + ': '+ localStorage[key]);
}
alert(list);
}
Rails
Приложение может запускаться с разных окружений
development - Настройки рэйлс позволяют оптимизировать среду чтобы было удобно разрабатывать программы, будет работать немного медленней, но удобней
test - будет вместо обычной бд подставлена тестовая бд
production - будет работать максимально быстро и не рассчитано на изменения в коде
Настройки рэйлс позволяют оптимизировать среду чтобы было удобно разрабатывать программы
rails new blog - создание простого приложения
Схема запуска rails приложения:
boot.rb - rails - enviroment.rb - окружение (development.rb/test.rb/production.rb)
MVC - model, view, controller
controller - специальный класс который находится в одном файле, отвечает за работу с какой либо сущностью
rails generate controller home index - создание контролера
class HomeController < ApplicationController
def index
end
end
Для изменения стартовой страницы зайти:
routes/config.rb
get '/' => 'home # index'