Reminder for Junior RUBY ON RAILS developers
Ruby Version Manager - позволяет использовать разные версии языка ruby на одном pc и быстро переключаться между ними.
rvm gemset create name_gemset #создаем gemset для нового проекта на rails
rvm use @name_gemset #загружаем окружение gemset
После можно установить Rails командой:
Помните, что после открытия нового окна terminal вам необходимо вновь загрузить ваш gemset командой:
Находясь в директории вашего проекта вы можете запустить его командой:
Или установить недавно добавленные gems командой:
rails s #запускаем проект на порту localhost:3000. Сtrl + c - остановить сервер.
rails c #запускаем консоль rails. Если хотим выйти, то набираем exit и жмем Enter.
rails new your_app_name #создаем новое rails приложение.
cd your_app_name #переходим к только что созданному приложению.
rails g controller home index #команда создает директорию home в yourapp/views, файл index.html.erb в директории home и добавляет в файл yourapp/config/routes.rb строку get 'home/index', которую нам необходимо изменить на root 'home#index', чтобы сделать страницу index корневой страницей вашего приложения.
rails g controller posts index #генерируем страницу для размещения списка наших записей. Обратите внимание, что мы используем множественное число для post. Если этого не сделать, то могут возникнуть проблемы при использовании ресурсных маршрутов. Зайдите в файл yourapp/config/routes.rb и добавьте строку resources :posts для создания ресурсных маршрутов.
bundle install #выполняем после того, как добавили новый gem в наш gemfile.
rake routes #смотрим все маршруты, которые существуют в проекте.
rake db:create #команда заставляет rake создать базу данных.
rake db:migrate #команда заставляет rake применить миграцию базы данных.
rake db:rollback #откатываем последнюю миграцию.
rake db:reset #возвращаем базу данных к первоначальному виду.
rake db:seed #наполняем наше приложение данными.
rails g model Post title:string decription:text #создаем таблицу Posts, title с типом поля string и description с типом поля text.
СОЗДАНИЕ НОВОЙ МОДЕЛИ СО СВЯЗЬЮ BELONGS_TO
rails g model Comment commenter:string body:text post:references #Создаем таблицу Comments и три столбца - commenter, body и post. Последний стоблец используется для того, чтобы устновить связь belongs_to (принадлежит к) с моделью Post.
ДОБАВЛЯЕМ НОВОЕ ПОЛЕ К МОДЕЛИ POSTS
rails g migration AddStatusToPosts status:integer #создает миграцию, которая добавляет к таблице Posts новый стобец status с типом integer.
Переходим в директорию yourapp/db/migrate
Открываем файл миграции #в директории будет находится несколько файлов - выбираем последний.
Проверяем содержимое файла:
change :posts, :status, :integer, default:0 #функция добавляет к таблице posts столбец status с типом ingeger и значением "0" по умолчанию для вновь созданных полей.
Переходим в командную строку и применяем миграцию командой:
УДАЛЯЕМ ПОЛЕ ИЗ МОДЕЛИ POSTS
rails g migration RemoveStatusFromPost status:integer #создает миграцию, которая удаляет из таблицы Posts стобец status с типом integer.
Проверяем содержимое файла миграции:
remove_column :posts, :status, :integer
Переходим в командную строку и применяем миграцию командой:
ИЗМЕНЯЕМ ТИП ПОЛЯ В МОДЕЛИ
rails g migration ChangeBodyTypeInPosts #создаем файл миграции.
Проверяем содержимое файла миграции:
change_column :posts, :body, :text #изменяем тип поля body.
Переходим в командную строку и применяем миграцию:
cd foder_name #перейти в каталог
cd .. #переместиться на каталог выше
mkdir folder_name #создать каталог
rm file_name #удалить файл
rm -rf folder_name #удалить каталог. !!! используйте с осторожностью, чтобы не удалить все содержимое директории - rm -rf / .