uzluga.ru
добавить свой файл
1


Ruby on Rails Задача А Ведение учета товаров

Выполнили:

Хаятов А.Р.

Мухамадиева А.Ю.

Шаг А1 – Подготовка к работе

  • Создание Rails приложения

  • Works> Rails depot

  • Cd depot



Шаг А1 – Подготовка к работе

  • Создание базы данных

  • Depot> Mysqladmin –u root create depot_development

  • Root – имя пользователя

  • Depot_development – имя базы



Шаг А1 – Подготовка к работе

  • Создание базы данных

  • Depot> Mysqladmin –u root create depot_development

  • Root – имя пользователя

  • Depot_development – имя базы



Шаг А1 – Подготовка к работе

  • Проверка базы данных

  • Depot> rake migrate:db



Шаг А1 – Подготовка к работе



Шаг А1 – Подготовка к работе

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

  • Depot> ruby script/generate model product

  • Автоматически создается файл модели и файл миграции:

  • class CreateProducts < ActiveRecord::Migration

  • def self.up

  • create_table :products do |t|

  • t.column :title, :string

  • t.column :description, :text

  • t.column :image_url, :string

  • end

  • end

  • def self.down

  • drop_table :products

  • end

  • end



Шаг А1 – Подготовка к работе

  • Создание контроллера

  • Depot> ruby script/generate controller admin



Шаг А1 – Подготовка к работе

  • Создание приложения

В файле контроллера admin_controller.rb пишем

Class AdminController < ApplicationController

scaffold :product

end

Шаг А1 – Подготовка к работе

  • Запуск сервера

Depot> rails script/server start
  • Открываем приложение

  • http://localhost:3000/admin



Шаг А1 – Подготовка к работе

  • Scaffolding

  • Rails автоматически создает необходимые скрипты для работы с данной таблицей products

  • Нам нет необходимости в ручную писать страницы для управления таблицей

  • Scaffolding – временная платформа



Шаг А1 – Подготовка к работе



Шаг А2 – Работа с миграцией

  • Добавим новую миграцию

  • Первая миграция создалась автоматически, следующие надо создать самим

  • Depot> ruby script/generate migration add_price

  • def self.up

  • add_column :products, :price, :decimal, :precision => 8, :scale => 2, :default => 0

  • end

  • def self.down

  • remove_column :products, :price

  • end



Шаг А3 – Проверка данных

  • Добавляем в код нашей модели

  • validates_presence_of :title, :description, :image_url

  • validates_numericality_of :price

  • validates_uniqueness_of :title

  • validates_format_of :image_url, :with => %r{\.(gif|jpg|png)$}i, :message=> "URL должен указывать на jpg,png,gif"

  • protected

  • def validate

  • errors.add(:price,"должна быть не менее 0.01") if price.nil? || price<0.01

  • end



Шаг А4 – Оформление

  • Depot> script/generate scaffold product admin

  • Ранее строка scaffold :product сама исполняла все необходимые скрипты

  • После этой команды в командной строке RAILS автоматически создает необходимые файлы, заменяет строку scaffold :product в контроллере.

  • Теперь мы имеем открытый доступ ко всему этому коду и оформлению