За одну неделю я прошел путь от знакомства с Rails до написания простых динамических веб-сайтов с информацией из базы данных postgresql. В начале все было ошеломляюще (и до сих пор остается), но по мере того, как я повторял процесс и стал более уверенным в синтаксисе, все стало проще до такой степени, что мне больше не нужно беспокоиться при создании новой сети. применение. Я предполагаю, что вы здесь, потому что вам нужна помощь или, возможно, вам нужно освежить знания, чтобы убедиться, что вы не упускаете из виду какую-либо часть процесса. Сегодня я решил помочь вам и провести вас через процесс создания вашего собственного веб-приложения… ну, по крайней мере, первые части. В этом упражнении я создам простое приложение Cookbook, поэтому убедитесь, что вы изменили язык, чтобы он соответствовал вашему приложению.
Приступаем к изготовлению этой штуки:
- Откройте свой веб-терминал и предпочтительную IDE (я буду использовать Sublime).
- Перейдите в папку, в которой вы хотите создать приложение, в терминале и введите
rails new Cookbook-app --database=postgresql
Затем перейдите в папку только что созданного приложения. - Если вы откроете только что созданную папку в Sublime, вы должны увидеть следующее:
- Оказавшись внутри папки, вам нужно будет создать базу данных, введя:
rails db:create
- Создайте свой контроллер
rails generate controller Recipes
, убедившись, что последняя работа стоит во множественном числе. Контроллер делает именно то, на что он похож. Он контролирует то, что пользователь видит на любом конкретном веб-сайте, просматривая создаваемые вами методы контроллера. Это позволяет вашему сайту быть динамичным, позволяя тому, что отображается на вашем сайте, постоянно меняться. - Тогда ваша модель. Модель создает категории для вашей базы данных.
rails generate model Recipe title:string chef:string ingredients:string directions:string image:string prep_time:integer
Обратите внимание, что :string является параметром по умолчанию и не требует явного объявления. - Просмотрите свой файл миграции в /cookbook-app/db/migrate/20170501235548_create_recipes.rb (ваш номер будет другим), убедитесь, что в нем нет орфографических ошибок, и ищите правильную информацию (целые числа, строки и т. д.). выглядеть примерно так:
- Убедившись, что все правильно, вернитесь к терминалу и введите
rails db:migrate
- Поздравляю! Вы выполнили начальные шаги по созданию веб-приложения… но предстоит еще многое сделать.
Добавление в базу:
Есть несколько способов сделать это. Сегодня мы рассмотрим наиболее эффективный из известных мне способов добавления элементов в базу данных. Используя файл seed.rb!
- Во-первых, давайте перейдем к нужному файлу:
- Теперь мы можем начать добавлять в базу данных. Помните, как вы называли свою модель? В моем случае это был «Рецепт». Итак, чтобы создать новый рецепт внутри, я напишу следующее:
Убедитесь, что вы помните последнюю строку recipe.save
, иначе элемент не будет добавлен в базу данных. Вы можете добавить в список столько элементов, сколько хотите, если строка сохранения находится под каждым из них!
- После того, как вы полностью исчерпали все параметры, которые хотите добавить в базу данных, вернитесь к терминалу и введите
rails db:seed
. Если ошибок не будет, вы должны быть в безопасности. - Чтобы проверить, были ли элементы добавлены в вашу базу данных, войдите в консоль rails... введя
rails console
в терминале. - Когда консоль запустится, введите
Recipe.all
, и вы должны увидеть список, подобный приведенному ниже:
- Если вам случится увидеть этот список, вы в безопасности и готовы начать использовать информацию в своем собственном приложении!
Используя информацию:
Так здорово, мы добавили всю информацию в базу данных… что теперь? Мы не будем проходить все, но я покажу вам, как увидеть информацию на вашей индексной странице.
- Прежде чем мы перейдем к Sublime, перейдите в терминал и введите
rails server
, находясь в папке приложения rails, в моем случае «/cookbook-app». Это позволяет вам увидеть свою страницу в действии на вашем компьютере, не размещая ее в Интернете. - Войдите в свою IDE и откройте route.rb (расположенный в папке config, recipes_controller.rb, расположенный в папке /app/controllers, и папку представления /app/views/recipes (эта папка будет пустой). Нажмите command + option + shift + 3 и сделайте так, чтобы ваше окно выглядело так:
- Сегодня мы будем следовать соглашениям об именах resful в файле маршрутов. Это позволит любому другому разработчику, который работает над этим приложением, легко определить пути и файлы, с которыми нужно работать. В файле маршрутов добавьте следующую строку:
get '/' => 'recipes#index' get '/recipes' => 'recipes#index'
- Это позволит вашей странице загружаться при загрузке localhost:3000 или localhost:3000/recipes.
- В файле контроллера создайте метод контроллера, как показано ниже. Убедитесь, что метод называется index.
- Поставив @recipes = Recipe.all, переменная @recipes увидит все значения в вашей базе данных.
- Перейдите в папку просмотра и создайте файл с именем index.html.erb. Обратите внимание, что вам нужно вызывать файл так, как ваш метод был вызван выше. Это связано с тем, что rails предполагает, что имя файла html.erb будет называться именем метода.
- Теперь, когда мы создали страницу в нашей папке просмотра, мы должны указать странице искать в базе данных. Поскольку html не может выполнять такие операции, мы должны обратиться к ruby! Мы делаем это с помощью тегов черепа
<% code %>
Используя метод .each для рецептов, мы можем написать следующий код:
- Код внутри тегов черепа - это то, как интерпретируется рубин. Все, что находится между первой строкой и последней строкой, будет прочитано для каждого элемента в базе данных. Обратите внимание, что вы должны использовать теги черепа с символом «=», чтобы вывести слова на экран.
- Теперь, когда мы ввели наш код, пришло время проверить, работает ли он! Перейдите на localhost:3000, чтобы увидеть свою новую страницу! Это должно выглядеть примерно так:
- И вот оно. Вы создали веб-сайт, который выводит каждое значение из базы данных. Поздравляю! Вы уже на пути к созданию удивительного веб-приложения. Продолжайте играть и посмотрите, что еще вы можете сделать!
Сегодня мы узнали
Сегодня мы узнали, как создать приложение и базу данных rails, назвать контроллер и модель и как настроить правильные пути для создания вашей первой динамической страницы rails! Это много информации, я знаю, но чем больше вы будете это делать, тем проще все станет. Попробуйте выполнить эти шаги несколько раз, пока вам больше не придется использовать эту статью в качестве справочного материала. Удачи и счастливого кодирования! Увидимся в следующий раз!