За одну неделю я прошел путь от знакомства с Rails до написания простых динамических веб-сайтов с информацией из базы данных postgresql. В начале все было ошеломляюще (и до сих пор остается), но по мере того, как я повторял процесс и стал более уверенным в синтаксисе, все стало проще до такой степени, что мне больше не нужно беспокоиться при создании новой сети. применение. Я предполагаю, что вы здесь, потому что вам нужна помощь или, возможно, вам нужно освежить знания, чтобы убедиться, что вы не упускаете из виду какую-либо часть процесса. Сегодня я решил помочь вам и провести вас через процесс создания вашего собственного веб-приложения… ну, по крайней мере, первые части. В этом упражнении я создам простое приложение Cookbook, поэтому убедитесь, что вы изменили язык, чтобы он соответствовал вашему приложению.

Приступаем к изготовлению этой штуки:

  1. Откройте свой веб-терминал и предпочтительную IDE (я буду использовать Sublime).
  2. Перейдите в папку, в которой вы хотите создать приложение, в терминале и введите rails new Cookbook-app --database=postgresql Затем перейдите в папку только что созданного приложения.
  3. Если вы откроете только что созданную папку в Sublime, вы должны увидеть следующее:

  1. Оказавшись внутри папки, вам нужно будет создать базу данных, введя: rails db:create
  2. Создайте свой контроллер rails generate controller Recipes, убедившись, что последняя работа стоит во множественном числе. Контроллер делает именно то, на что он похож. Он контролирует то, что пользователь видит на любом конкретном веб-сайте, просматривая создаваемые вами методы контроллера. Это позволяет вашему сайту быть динамичным, позволяя тому, что отображается на вашем сайте, постоянно меняться.
  3. Тогда ваша модель. Модель создает категории для вашей базы данных. rails generate model Recipe title:string chef:string ingredients:string directions:string image:string prep_time:integer Обратите внимание, что :string является параметром по умолчанию и не требует явного объявления.
  4. Просмотрите свой файл миграции в /cookbook-app/db/migrate/20170501235548_create_recipes.rb (ваш номер будет другим), убедитесь, что в нем нет орфографических ошибок, и ищите правильную информацию (целые числа, строки и т. д.). выглядеть примерно так:

  1. Убедившись, что все правильно, вернитесь к терминалу и введите rails db:migrate
  2. Поздравляю! Вы выполнили начальные шаги по созданию веб-приложения… но предстоит еще многое сделать.

Добавление в базу:

Есть несколько способов сделать это. Сегодня мы рассмотрим наиболее эффективный из известных мне способов добавления элементов в базу данных. Используя файл seed.rb!

  1. Во-первых, давайте перейдем к нужному файлу:

  1. Теперь мы можем начать добавлять в базу данных. Помните, как вы называли свою модель? В моем случае это был «Рецепт». Итак, чтобы создать новый рецепт внутри, я напишу следующее:

Убедитесь, что вы помните последнюю строку recipe.save, иначе элемент не будет добавлен в базу данных. Вы можете добавить в список столько элементов, сколько хотите, если строка сохранения находится под каждым из них!

  1. После того, как вы полностью исчерпали все параметры, которые хотите добавить в базу данных, вернитесь к терминалу и введите rails db:seed. Если ошибок не будет, вы должны быть в безопасности.
  2. Чтобы проверить, были ли элементы добавлены в вашу базу данных, войдите в консоль rails... введя rails console в терминале.
  3. Когда консоль запустится, введите Recipe.all, и вы должны увидеть список, подобный приведенному ниже:

  1. Если вам случится увидеть этот список, вы в безопасности и готовы начать использовать информацию в своем собственном приложении!

Используя информацию:

Так здорово, мы добавили всю информацию в базу данных… что теперь? Мы не будем проходить все, но я покажу вам, как увидеть информацию на вашей индексной странице.

  1. Прежде чем мы перейдем к Sublime, перейдите в терминал и введите rails server, находясь в папке приложения rails, в моем случае «/cookbook-app». Это позволяет вам увидеть свою страницу в действии на вашем компьютере, не размещая ее в Интернете.
  2. Войдите в свою IDE и откройте route.rb (расположенный в папке config, recipes_controller.rb, расположенный в папке /app/controllers, и папку представления /app/views/recipes (эта папка будет пустой). Нажмите command + option + shift + 3 и сделайте так, чтобы ваше окно выглядело так:

  1. Сегодня мы будем следовать соглашениям об именах resful в файле маршрутов. Это позволит любому другому разработчику, который работает над этим приложением, легко определить пути и файлы, с которыми нужно работать. В файле маршрутов добавьте следующую строку:
get '/' => 'recipes#index'
get '/recipes' => 'recipes#index'
  1. Это позволит вашей странице загружаться при загрузке localhost:3000 или localhost:3000/recipes.
  2. В файле контроллера создайте метод контроллера, как показано ниже. Убедитесь, что метод называется index.

  1. Поставив @recipes = Recipe.all, переменная @recipes увидит все значения в вашей базе данных.
  2. Перейдите в папку просмотра и создайте файл с именем index.html.erb. Обратите внимание, что вам нужно вызывать файл так, как ваш метод был вызван выше. Это связано с тем, что rails предполагает, что имя файла html.erb будет называться именем метода.
  3. Теперь, когда мы создали страницу в нашей папке просмотра, мы должны указать странице искать в базе данных. Поскольку html не может выполнять такие операции, мы должны обратиться к ruby! Мы делаем это с помощью тегов черепа <% code %> Используя метод .each для рецептов, мы можем написать следующий код:

  1. Код внутри тегов черепа - это то, как интерпретируется рубин. Все, что находится между первой строкой и последней строкой, будет прочитано для каждого элемента в базе данных. Обратите внимание, что вы должны использовать теги черепа с символом «=», чтобы вывести слова на экран.
  2. Теперь, когда мы ввели наш код, пришло время проверить, работает ли он! Перейдите на localhost:3000, чтобы увидеть свою новую страницу! Это должно выглядеть примерно так:

  1. И вот оно. Вы создали веб-сайт, который выводит каждое значение из базы данных. Поздравляю! Вы уже на пути к созданию удивительного веб-приложения. Продолжайте играть и посмотрите, что еще вы можете сделать!

Сегодня мы узнали

Сегодня мы узнали, как создать приложение и базу данных rails, назвать контроллер и модель и как настроить правильные пути для создания вашей первой динамической страницы rails! Это много информации, я знаю, но чем больше вы будете это делать, тем проще все станет. Попробуйте выполнить эти шаги несколько раз, пока вам больше не придется использовать эту статью в качестве справочного материала. Удачи и счастливого кодирования! Увидимся в следующий раз!

Кристофер Бейтсон, он же c-Нозетаб