Найти в Дзене

Практика Ruby №25(Grid, JS, Rails)

Все материалы для конспекта взяты с 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'