Поиск…


замечания

логотип

Ruby on Rails (RoR) или Rails - это популярная платформа веб-приложений с открытым исходным кодом. Rails использует Ruby, HTML, CSS и JavaScript для создания веб-приложения, работающего на веб-сервере. Rails использует шаблон model-view-controller (MVC) и обеспечивает полный набор библиотек из базы данных вплоть до представления.

Версии

Версия Дата выхода
5.1.2 2017-06-26
5.0 2016-06-30
4,2 2014-12-19
4,1 2014-04-08
4,0 2013-06-25
3,2 2012-01-20
3,1 2011-08-31
3.0 2010-08-29
2,3 2009-03-16
2,0 2007-12-07
1.2 2007-01-19
1,1 2006-03-28
1,0 2005-12-13

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

В этом примере предполагается, что Ruby и Ruby on Rails уже установлены правильно. Если нет, вы можете найти, как это сделать здесь .

Откройте командную строку или терминал. Чтобы создать новое приложение rails, используйте новую команду rails, а затем имя вашего приложения:

$ rails new my_app

Если вы хотите создать приложение Rails с определенной версией Rails, вы можете указать его во время создания приложения. Для этого используйте rails _version_ new а затем имя приложения:

$ rails _4.2.0_ new my_app 

Это создаст приложение Rails под названием MyApp в каталоге my_app и установит зависимости gem, которые уже упоминаются в Gemfile используя bundle install .

Чтобы переключиться на каталог вновь созданного приложения, используйте команду cd , которая обозначает change directory .

$ cd my_app

В my_app есть несколько автоматически сгенерированных файлов и папок, которые составляют структуру приложения Rails. Ниже приведен список файлов и папок, созданных по умолчанию:

Папка Цель
приложение/ Содержит контроллеры, модели, представления, помощники, почтовые программы и активы для вашего приложения.
бен / Содержит скрипт rails, который запускает ваше приложение и может содержать другие скрипты, которые вы используете для настройки, обновления, развертывания или запуска приложения.
конфиг / Настройте маршруты, базу данных и многое другое.
config.ru Конфигурация стойки для серверов на стойке, используемых для запуска приложения.
дБ / Содержит вашу текущую схему базы данных, а также миграцию базы данных.
Gemfile Gemfile.lock Эти файлы позволяют указать, какие зависимости от gem необходимы для вашего приложения Rails. Эти файлы используются жемчужиной Bundler.
Библиотека / Расширенные модули для вашего приложения.
журнал/ Файлы журналов приложений.
общественности / Единственная папка, которую видит мир как есть. Содержит статические файлы и скомпилированные активы.
Rakefile Этот файл находит и загружает задачи, которые могут выполняться из командной строки. Определения задач определяются во всех компонентах Rails.
README.md Это краткое руководство для вашего приложения. Вы должны отредактировать этот файл, чтобы сообщить другим, что делает ваше приложение, как его настроить и т. Д.
тестовое задание/ Единичные испытания, приборы и другие испытательные устройства.
темп / Временные файлы (например, файлы кеша и pid).
продавец / Место для всех сторонних кодов. В типичном приложении Rails это включает в себя драгоценные камни.

Теперь вам нужно создать базу данных из файла database.yml :

5.0
rake db:create
# OR
rails db:create
5.0
rake db:create

Теперь, когда мы создали базу данных, нам нужно запустить миграцию для настройки таблиц:

5.0
rake db:migrate
# OR
rails db:migrate
5.0
rake db:migrate

Чтобы запустить приложение, нам нужно запустить сервер:

$ rails server
# OR
$ rails s

По умолчанию рельсы запустит приложение на порту 3000. Чтобы запустить приложение с другим номером порта, нам нужно запустить сервер, например,

$ rails s -p 3010

Если вы перейдете в http: // localhost: 3000 в своем браузере, вы увидите страницу приветствия Rails, показывающую, что ваше приложение запущено.

Если он вызывает ошибку, может быть несколько возможных проблем:

  • Существует проблема с config/database.yml
  • У вас есть зависимости в вашем Gemfile , которые не были установлены.
  • У вас есть ожидающие миграции. Run rails db:migrate
  • Если вы перейдете к предыдущим маршрутам переноса rails db:rollback

Если это все еще вызывает ошибку, вы должны проверить свой config/database.yml

Создайте новое приложение Rails с выбором базы данных и включая инструмент проверки RSpec

Rails использует sqlite3 как базу данных по умолчанию, но вы можете создать новое приложение rails с базой данных по вашему выбору. Просто добавьте параметр -d а затем имя базы данных.

$ rails new MyApp -T -d postgresql

Это (неисчерпывающий) список доступных параметров базы данных:

  • MySQL
  • оракул
  • PostgreSQL
  • sqlite3
  • FrontBase
  • IBM_DB
  • SQLServer
  • jdbcmysql
  • jdbcsqlite3
  • jdbcpostgresql
  • JDBC

Команда -T указывает, чтобы пропустить установку minitest. Чтобы установить альтернативный набор тестов, например RSpec , отредактируйте Gemfile и добавьте

group :development, :test do
  gem 'rspec-rails', 
end

Затем запустите с консоли следующую команду:

rails generate rspec:install

Генерирование контроллера

Чтобы создать контроллер (например, « Posts ), перейдите в каталог проекта из командной строки или терминала и запустите:

$ rails generate controller Posts

Вы можете сократить этот код, заменив generate на g , например:

$ rails g controller Posts

Если вы откроете вновь созданное приложение / контроллеры / posts_controller.rb, вы увидите контроллер без каких-либо действий:

class PostsController < ApplicationController
    # empty
end

Можно создать методы по умолчанию для контроллера, передав аргументы имени контроллера.

$ rails g controller ControllerName method1 method2

Чтобы создать контроллер внутри модуля, укажите имя контроллера как путь, например parent_module/controller_name . Например:

$ rails generate controller CreditCards open debit credit close
# OR
$ rails g controller CreditCards open debit credit close

Это приведет к созданию следующих файлов:

Controller: app/controllers/credit_cards_controller.rb
Test:       test/controllers/credit_cards_controller_test.rb
Views:      app/views/credit_cards/debit.html.erb [...etc]
Helper:     app/helpers/credit_cards_helper.rb

Контроллер - это просто класс, который определяется как наследуемый от ApplicationController .

Внутри этого класса вы определяете методы, которые станут действиями для этого контроллера.

Создание ресурса с помощью лесов

От guide.rubyonrails.org:

Вместо создания модели напрямую. , , давайте создадим эшафот. Эстафот в Rails - это полный набор моделей, миграция базы данных для этой модели, контроллер для управления им, представления для просмотра и управления данными и набор тестов для каждого из вышеперечисленных.

Ниже приведен пример создания леса под названием Task с именем строки и текстовым описанием:

rails generate scaffold Task name:string description:text

Это приведет к созданию следующих файлов:

Controller: app/controllers/tasks_controller.rb
Test:       test/models/task_test.rb
            test/controllers/tasks_controller_test.rb
Routes:     resources :tasks added in routes.rb
Views:      app/views/tasks
            app/views/tasks/index.html.erb
            app/views/tasks/edit.html.erb
            app/views/tasks/show.html.erb
            app/views/tasks/new.html.erb
            app/views/tasks/_form.html.erb
Helper:     app/helpers/tasks_helper.rb
JS:         app/assets/javascripts/tasks.coffee 
CSS:        app/assets/stylesheets/tasks.scss
            app/assets/stylesheets/scaffolds.scss

пример для удаления файлов, созданных эшафотом для ресурса под названием Task

rails destroy scaffold Task

Создайте новое приложение Rails с нестандартным адаптером базы данных

Rails поставляется по умолчанию с помощью ActiveRecord , ORM (реляционное сопоставление объектов), полученного из шаблона с тем же именем .

Как ORM, он создан для обработки реляционного сопоставления, а точнее, для обработки запросов SQL для вас, отсюда ограничение только для баз данных SQL.

Однако вы все равно можете создать приложение Rails с другой системой управления базами данных:

  1. просто создайте приложение без активной записи
$ rails app new MyApp --skip-active-record
  1. добавить собственную систему управления базами данных в Gemfile
gem 'mongoid', '~> 5.0'
  1. bundle install и выполнить шаги установки из нужной базы данных.

В этом примере mongoid - это сопоставление объектов для MongoDB и - как и многие другие камни базы данных, построенные для рельсов - он также наследует от ActiveModel же, как и ActiveRecord , который обеспечивает общий интерфейс для многих функций, таких как проверки, обратные вызовы, переводы и т. Д. ,

Другие адаптеры баз данных включают, но не ограничиваются:

  • DataMapper

  • сиквел рельсы

Создание Rails-интерфейсов в JSON

В этом примере предполагается, что у вас есть опыт создания приложений Rails.

Чтобы создать приложение только для API в Rails 5, запустите

rails new name-of-app --api

Добавить active_model_serializers в Gemfile

gem 'active_model_serializers'

установить комплект в терминале

bundle install

Установите ActiveModelSerializer адаптер для использования :json_api

# config/initializers/active_model_serializer.rb
ActiveModelSerializers.config.adapter = :json_api
Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest application/vnd.api+json )

Создайте новый эшафот для вашего ресурса

rails generate scaffold Task name:string description:text

Это приведет к созданию следующих файлов:

Контроллер: приложение / контроллеры / tasks_controller.rb

Test:       test/models/task_test.rb
            test/controllers/tasks_controller_test.rb
Routes:     resources :tasks added in routes.rb
Migration:  db/migrate/_create_tasks.rb
Model:      app/models/task.rb
Serializer: app/serializers/task_serializer.rb
Controller: app/controllers/tasks_controller.rb

Установка Rails

Установка Rails на Ubuntu

На чистом ubuntu установка Rails должна быть прямой

Обновление пакетов Ubuntu

sudo apt-get update
sudo apt-get upgrade

Установка зависимостей Ruby и Rails

sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev

Установка рубинового менеджера версий. В этом случае простой использует rbenv

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

Установка Ruby Build

git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc

Перезапустить оболочку

exec $SHELL

Установить рубин

rbenv install 2.3.1
rbenv global 2.3.1
rbenv rehash

Установка рельсов

gem install rails

Установка Rails в Windows

Шаг 1: Установка Ruby

Нам нужен язык программирования Ruby. Мы можем использовать предварительно скомпилированную версию Ruby с именем RubyInstaller.

  • Загрузите и запустите Ruby Installer с rubyinstaller.org .
  • Запустите программу установки. Проверьте «Добавить исполняемые файлы Ruby на свой PATH», затем установите.
  • Чтобы получить доступ к Ruby, перейдите в меню Windows, выберите «Все программы», прокрутите вниз до Ruby и нажмите «Start Command Prompt with Ruby». Откроется терминал командной строки. Если вы ruby -v и нажмите Enter, вы увидите номер версии Ruby, который вы установили.

Шаг 2: Комплект разработки Ruby

После установки Ruby мы можем попытаться установить Rails. Но некоторые из библиотек Rails зависят от необходимости некоторых инструментов сборки для компиляции, а Windows не имеет этих инструментов по умолчанию. Вы можете определить это, если вы видите ошибку при попытке установить Rails Gem::InstallError: The '[gem name]' native gem requires installed build tools. Чтобы исправить это, нам нужно установить Ruby Development Kit.

  • Загрузить DevKit
  • Запустите программу установки.
  • Нам нужно указать папку, в которой мы собираемся навсегда установить DevKit. Я рекомендую установить его в корень вашего жесткого диска в C:\RubyDevKit . (Не используйте пробелы в имени каталога.)

Теперь нам нужно сделать инструменты DevKit доступными для Ruby.

  • В командной строке перейдите в каталог DevKit. cd C:\RubyDevKit или любой другой каталог, в который вы его установили.
  • Нам нужно запустить скрипт Ruby для инициализации установки DevKit. Тип ruby dk.rb init . Теперь мы расскажем об этом же скрипте, чтобы добавить DevKit в нашу установку Ruby. Тип ruby dk.rb install .

Теперь DevKit будет доступен для ваших инструментов Ruby, которые будут использоваться при установке новых библиотек.

Шаг 3: Рельсы

Теперь мы можем установить Rails. Rails - это драгоценный камень Ruby. В командной строке введите:

gem install rails

Как только вы нажмете Enter, программа gem будет загружать и устанавливать эту версию Rails-жемчужины вместе со всеми остальными драгоценными камнями.

Шаг 4: Node.js

Некоторые библиотеки, от которых зависит Rails, требуют установки времени выполнения JavaScript. Давайте установим Node.js, чтобы эти библиотеки работали правильно.

  • ВЫГРУЖАТЬ Node.js установки из здесь .
  • Когда загрузка завершена, зайдите в папку для загрузки и запустите установщик node-v4.4.7.pkg .
  • Прочтите полное лицензионное соглашение, примите условия и нажмите «Далее» через остальных мастеров, оставив все по умолчанию.
  • Появится окно с вопросом, хотите ли вы разрешить приложению вносить изменения в свой компьютер. Нажмите «Да».
  • Когда установка будет завершена, вам необходимо перезагрузить компьютер, чтобы Rails мог получить доступ к Node.js.

После перезагрузки компьютера не забудьте перейти в меню Windows, нажмите «Все программы», прокрутите вниз до Ruby и нажмите «Начать командную строку с Ruby».



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow