Rusrails керівництво по командному рядку rails

Командний рядок Rails

Після прочитання цього керівництва, ви дізнаєтеся

  • Як створити додаток на Rails
  • Як генерувати моделі, контролери, міграції бази даних і юніт-тести
  • Як запустити сервер для розробки
  • Як експериментувати з об'єктами в інтерактивній оболонці

Цей самовчитель передбачає, що ви володієте знаннями основ Rails, які можна почерпнути в керівництві Rails для початківців.







1. Основи командного рядка

Є кілька команд, абсолютно критичних для повсякденного використання в Rails. В порядку можливої ​​частоти використання, вони такі:

  • rails console
  • rails server
  • bin / rails
  • rails generate
  • rails dbconsole
  • rails new app_name

Кожну команду можна запустити з -h або --help для відображення докладної інформації.

Давайте створимо просте додаток на Rails, щоб розглянути всі ці команди в контексті.

1.1. rails new

Спершу ми хочемо створити новий додаток на Rails, запустивши команду rails new після установки Rails.

Гем rails можна встановити, написавши gem install rails. якщо його ще немає.

Rails створить купу всього за допомогою такої маленької команди! Тепер ви отримали готову структуру директорії Rails з усім кодом, необхідним для запуску нашого простого додатка.

1.2. rails server

Команда rails server запускає веб-сервер Puma, що поставляється з Ruby. Його будемо використовувати всякий раз, коли захочемо побачити свою роботу в веб-браузері.

Без будь-якого примусу, rails server запустить наше блискуче додаток на Rails:

Для запуску сервера також можна використовувати псевдонім "s": rails s.

Сервер може бути запущений на іншому порту, при використанні опції -p. Середовище замовчуванням може бути змінена з використанням -e.

Опція -b прив'язує Rails до певного IP, за замовчуванням це localhost. Можете запустити сервер, як демона, передавши опцію -d.

1.3. rails generate

Команда rails generate використовує шаблони для створення цілої купи речей. Запуск rails generate видасть список доступних генераторів:

Також можна використовувати псевдонім "g" для виклику команди generate. rails g.

Можна встановити більше генераторів за допомогою гемов генераторів, частини плагінів, які ви, безсумнівно, встановіть, і навіть можете створити свій власний!

Використання генераторів допоможе заощадити багато часу, написавши за вас шаблонний код - необхідний для роботи програми.

Давайте створимо свій власний контролер за допомогою генератора контролера. Яку ж команду використовувати? Давайте запитаємо у генератора:

Всі консольні утиліти Rails мають текст допомоги. Як і з більшістю утиліт * nix, можна спробувати --help або -h в кінці, наприклад rails server --help.

Генератор контролера очікує параметри в формі generate controller ControllerName action1 action2. Давайте створимо контролер Greetings з екшном hello. який скаже нам що-небудь приємне.

Давайте перевіримо наш контролер і трохи його змінимо (в app / controllers / greetings_controller.rb):

Потім вьюха для відображення нашого повідомлення (в app / views / greetings / hello.html.erb):

Запустимо сервер за допомогою rails server.

У Rails також є генератор для моделей даних.

Список доступних типів полів для параметра type можна дізнатися в документації API для методу add_column модуля SchemaStatements. Параметр index генерує відповідний індекс для стовпця.

Генератор перевірив, що існують директорії для моделей, контролерів, хелперів, макетів, функціональних і юніт тестів, таблиць стилів, створив вьюха, контролер, модель і міграцію бази даних для HighScore (створює таблицю high_scores і поля), подбав про маршрут для ресурсу. і створив нові тести для всього цього.

Давайте поговоримо про юніт тестах. Юніт тести - це код, який тестує і робить твердження про коді. У юніт тестуванні ми беремо частину коду, скажімо, метод моделі, і тестуємо його входи і виходи. Юніт тести ваші друзі. Чим раніше ви змиріться з фактом, що якість життя зросте, коли станете тестувати свій код за допомогою юніт тестів, тим краще. Серйозно. Відвідайте Керівництво по тестуванню для більш глибокого вивчення юніт тестування.

Давайте поглянемо на інтерфейс, який Rails створив для нас.

1.4. rails console

Команда console дозволяє взаємодіяти з додатком на Rails з командного рядка. У своїй основі rails console використовує IRB, тому, якщо ви коли-небудь його використовували, то будете почувати себе затишно. Це корисно для тестування швидких ідей з кодом і редагування даних на сервері не чіпаючи веб-сайт.

Для виклику консолі також можна використовувати псевдонім "c": rails c.

Можна вказати середу, в якій повинна працювати команда console.







Якщо потрібно протестувати деякий код без зміни будь-яких даних, можна це зробити, викликавши rails console --sandbox.

1.4.1. Об'єкти app і helper

Усередині rails console є доступ до екземплярів app і helper.

За допомогою методу app доступні хелпери url і path, а також можна робити запити.

За допомогою методу helper можливо отримати доступ до хелперам Rails і вашої програми.

1.5. rails dbconsole

rails dbconsole визначає, яка база даних використовується, і переміщує вас в такий інтерфейс командного рядка, в якому можна її використовувати (і також визначає параметри командного рядка, які потрібно передати!). Вона підтримує MySQL (включаючи MariaDB), PostgreSQL і SQLite3.

Для виклику консолі бази даних також можна використовувати псевдонім "db": rails db.

1.6. rails runner

rails runner запускає код Ruby в контексті неінтерактивному Rails. Для прикладу:

Можна також використовувати псевдонім "r" для виклику runner: rails r.

Можна визначити середу, в якій буде працювати команда runner. використовуючи перемикач -e:

За допомогою runner навіть можна запускати код ruby, написаний в файлі.

1.7. rails destroy

Також можна використовувати псевдонім "d" для виклику команди destroy: rails d.

2. bin / rails

Починаючи з Rails 5.0 команди rake вбудовані в виконуваний файл rails, bin / rails тепер виконує команди за замовчуванням.

Можна отримати список доступних завдань bin / rails, який часто залежить від вашої поточної директорії, написавши bin / rails --help. У кожного завдання є опис, що допомагає знайти те, що вам необхідно.

Для отримання списку завдань також можна використовувати bin / rails -T.

2.1. about

bin / rails about надає інформацію про номери версій Ruby, RubyGems, Rails, подкомпонентов Rails, папці вашої програми, імені поточної середовища Rails, адаптер бази даних вашого застосування і версії схеми. Це корисно, коли потрібно попросити допомогу, перевірити патч безпеки, який може вплинути на вас, або просто хочете дізнатися статистику про поточну інсталяції Rails.

2.2. assets

Можна попередньо компілювати Ассет в app / assets. використовуючи bin / rails assets: precompile. і видаляти ці скомпільовані Ассет, використовуючи bin / rails assets: clean. Завдання assets: clean дозволяє відкочувати деплоі, які все ще можуть бути пов'язані зі старими Ассет, в той час як створюються нові Ассет.

Якщо хочете повністю очистити public / assets. можна використовувати bin / rails assets: clobber.

Найпоширенішими завданнями простору імен bin / rails db: є migrate і create. але слід спробувати і інші міграційні завдання bin / rails (up. down. redo. reset). bin / rails db: version корисна для вирішення проблем, показуючи поточну версію бази даних.

Більш докладно про міграціях написано в керівництві Міграції.

2.4. notes

Можна додати підтримку для нового розширення файлу за допомогою опції config.annotations.register_extensions. яка отримує список розширень з відповідним регулярним виразом.

Якщо шукаєте певну анотацію, скажімо FIXME, використовуйте bin / rails notes: fixme. Відзначте, що ім'я анотації використано в нижньому регістрі.

Також можна використовувати довільні анотації в своєму коді і виводити їх, використовуючи bin / rails notes: custom. визначивши анотацію, використовуючи змінну середовища ANNOTATION.

При використанні певних і довільних анотацій, ім'я анотації (FIXME, BUG і т.д.) не відображається в рядках результату.

За замовчуванням rails notes буде шукати в директоріях app. config. db. lib і test. Якщо бажаєте шукати в інших директоріях, їх можна налаштувати за допомогою опції config.annotations.register_directories.

Також можна їх надати як розділений комами список в змінного середовища SOURCE_ANNOTATION_DIRECTORIES.

2.5. routes

rails routes відобразить список всіх визначених маршрутів, що корисно для відстеження проблем з роутингом в вашому додатку, або надання гарного огляду URL додатка, з яким ви намагаєтеся ознайомитися.

Rails поставляється з тестовим набором під назвою Minitest. Rails зберігає стабільність в зв'язку з використанням тестів. Завдання, доступні в просторі імен test. допомагають з запуском різних тестів, які ви, безсумнівно, напишіть.

Директорія Rails.root / tmp є, як будь-яка * nix директорія / tmp, місцем для тимчасових файлів, таких як файли id процесів і кешированниє екшени.

Завдання простору імен tmp: допоможуть очистити і створити директорію Rails.root / tmp:

  • rails tmp: cache: clear очистить tmp / cache.
  • rails tmp: sockets: clear очистить tmp / sockets.
  • rails tmp: screenshots: clear очистить tmp / screenshots.
  • rails tmp: clear очистить всі файли кешу, сокетов і скріншотів.
  • rails tmp: create створює тимчасові директорії для кеша, сокетов і ідентифікаторів процесу (pid).

2.8. інше

  • rails stats чудово для огляду статистики вашого коду, відображає такі речі, як KLOCs (тисячі рядків коду) і ваш код для тестування показників.
  • rails secret дасть псевдо-випадковий ключ для використання в якості секретного ключа сесії.
  • rails time: zones: all перерахує всі тимчасові зони, про які знає Rails.

2.9. Призначені для користувача завдання Rake

Призначені для користувача завдання rake мають розширення .rake і розташовуються в Rails.root / lib / tasks. Ці призначені для користувача завдання rake можна створити за допомогою команди bin / rails generate task.

Щоб передати аргументи в ваш завдання rake:

Завдання можна групувати, поміщаючи їх в простору імен:

Виклик завдань виглядає так:

Якщо необхідно взаємодіяти з моделями додатки, виконувати запити в базу даних і так далі, ваше завдання повинен залежати від завдання environment. який завантажить код вашої програми.

3. Просунута командний рядок Rails

Більш просунуте використання командного рядка сфокусовано на корисних (навіть іноді дивують) опціях утиліт, і підгонці утиліт до ваших потреб і особливостям робочого процесу. Зараз ми перерахуємо трюки з рукава Rails.

3.1. Rails з базами даними і SCM

При створенні нової програми на Rails, можна вибрати, який тип бази даних і який тип системи управління вихідним кодом (SCM) збирається використовувати вашу програму. Це заощадить вам кілька хвилин і, звичайно, кілька рядків.

Давайте подивимося, що можуть зробити для нас опції --git і --database = postgresql:

Ми створили директорію gitapp і ініціалізували порожній репозиторій перед тим, як Rails додав би створені ним файли в наш репозиторій. Давайте поглянемо, що він нам помістив в конфігурацію бази даних:

Це також згенерує кілька рядків в нашій конфігурації database.yml, відповідних нашим вибором PostgreSQL як бази даних.

Єдина хитрість з використанням опції SCM полягає в тому, що спочатку потрібно створити директорію для додатка, потім ініціалізувати ваш SCM, і лише потім можна запустити команду rails new для генерація основи вашого застосування.

Ліцензія CC BY-SA 3.0 "Rails", "Ruby on Rails" і логотип Rails - торгові марки DHH







Схожі статті