Найти тему

Практика Ruby №26(REST, ЧЕК-ЛИСТ, comments, ActiveRecord, CRUD, RSPEC)

Оглавление

Все материалы для конспекта взяты с rubyschool.us

GET
POST - HTML ЭЛЕМЕНТЫ, МОЖНО ОТПРАВИТЬ С ПОМОЩЬЮ ФОРМЫ

PUT
DELETE

REST - передача состояния объекта
REST для сущности product(resourses):
index /products get вывести весь список
show /products/1 get вывести отдельную
new /products/new get форма для создания новой
create /products post отправка из формы выше
edit /products/1/edit get форма для редактирования
update /products/1 put обновление имеющийся
destroy /products/1 delete удаление из бд

Для работы с html/css/js:
Plunker
Сodepen

function clear_cart() {
localStorage.clear();
update_orders();
update_button();
$(' # cart').text('Your cart is now empty');
return false
}
<button class="btn btn-danger" onclick="return clear_cart(); return false">Clear cart</button>
В данном случает пишется return false для того чтобы при нажатии кнопки не отправлялась форма
если return false вынести в функцию, то необходимо будет дописать действие на кнопке
<return "название функции">

rails generate GENERATOR params = rails g ....

Генераторы:
controller
model
...

Создание модели через консоль:
rails g model Article title:string text:text

Создается модель в бд Article cо столбцами title и text

В routes.rb добавим:

resources :articles
и в командной строке пропишем rake routes

ЧЕК-ЛИСТ:

  1. Модель (создание, rake db:migrate)
  2. Маршрут (resourse/resourses)
  3. Контроллер
  4. Actions (index*/show/new+create/edit+update/destroy or others)
  5. Views

Статья - Комментарии

отношения one-to-many, те у одной статьи может быть множество комментариев

Создание модели Comments

rails g model Comment author:string body:text article:references

Для sqlite3 просмотр названия столбцов в таблице бд:

pragma table_info(table_name);

Вложенный маршрут:

resources :articles do
resources :comments
end

В модели Article дописать:

has_many :comments

Active Record

Что можно делать с сущностями:

CRUD - Create Read Update Delete

Create - .new/.save | .create(используется в миграциях)

Read - .find/.all/.where(выбор по критерию)

Update - .update обновление сущности

Delete - .destroy удаление

RSPEC

фреймворк для тестирования приложений

запуск: rspec file.rb

describe Class do
it "" do
end
end

Пример тестов

arrange - подготовка необходимого для теста

act - действие

assert - проверка действия