Ruby on Rails
Команды генерации Rails
Поиск…
Вступление
Использование: rails generate GENERATOR_NAME [args] [options]
.
Используйте rails generate
для отображения доступных генераторов. Псевдоним: rails g
.
параметры
параметр | подробности |
---|---|
-h / --help | Получить помощь по любой команде генератора |
-p / --pretend | Режим притвора: запустите генератор, но не создавайте и не изменяйте файлы |
field:type | «field-name» - это имя создаваемого столбца, а «type» - тип столбца данных. Возможные значения для типа «type» в field:type приведены в разделе «Примечания». |
замечания
Возможные значения для типа «type» в field:type
:
Тип данных | Описание |
---|---|
:string | Для меньших фрагментов текста (обычно имеет предел символов 255) |
:text | Для более длинных фрагментов текста, как абзац |
:binary | Хранение данных, включая изображения, аудио и видео |
:boolean | Сохранение истинных или ложных значений |
:date | Только дата |
:time | Только время |
:datetime | Дата и время |
:float | Хранение поплавков без точности |
:decimal | Хранение поплавков с точностью |
:integer | Сохранение целых чисел |
Rails Generate Model
Чтобы создать модель ActiveRecord
которая автоматически создает правильные db-миграции и тестовые файлы шаблонов для вашей модели, введите эту команду
rails generate model NAME column_name:column_type
«NAME» - это имя модели. «field» - это имя столбца в таблице DB, а «type» - это тип столбца (например, name:string
или body:text
). Просмотрите раздел «Примечания» для списка поддерживаемых типов столбцов.
Чтобы настроить внешние ключи, добавьте belongs_to:model_name
.
Поэтому скажите, что вы хотите настроить модель User
которая имеет username
, email
и принадлежит к School
, вы должны ввести следующую
rails generate model User username:string email:string school:belongs_to
rails g
является сокращением для rails generate
. Это приведет к такому же результату
rails g model User username:string email:string school:belongs_to
Rails Generate Migration
Вы можете создать файл миграции рельсов с терминала, используя следующую команду:
rails generate migration NAME [field[:type][:index] field[:type][:index]] [options]
Для списка всех параметров, поддерживаемых этой командой, вы можете запустить команду без каких-либо аргументов, как в rails generate migration
.
Например, если вы хотите добавить поля first_name
и last_name
в таблицу users
, вы можете сделать следующее:
rails generate migration AddNamesToUsers last_name:string first_name:string
Rails создаст следующий файл миграции:
class AddNamesToUsers < ActiveRecord::Migration[5.0]
def change
add_column :users, :last_name, :string
add_column :users, :first_name, :string
end
end
Теперь примените ожидающие миграции к базе данных, запустив в терминале следующее:
rake db:migrate
rails db:migrate
Примечание. Для еще меньшего набора текста вы можете заменить
generate
наg
.
Rails Generate Scaffold
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ : строительные леса не рекомендуется, если только для обычных приложений CRUD / тестирования. Это может генерировать много файлов (представлений / моделей / контроллеров), которые не нужны в вашем веб-приложении, тем самым вызывая головные боли (bad :().
Чтобы создать полностью работающий эшафот для нового объекта, включая модель, контроллер, представления, активы и тесты, используйте команду rails g scaffold
.
$ rails g scaffold Widget name:string price:decimal invoke active_record create db/migrate/20160722171221_create_widgets.rb create app/models/widget.rb invoke test_unit create test/models/widget_test.rb create test/fixtures/widgets.yml invoke resource_route route resources :widgets invoke scaffold_controller create app/controllers/widgets_controller.rb invoke erb create app/views/widgets create app/views/widgets/index.html.erb create app/views/widgets/edit.html.erb create app/views/widgets/show.html.erb create app/views/widgets/new.html.erb create app/views/widgets/_form.html.erb invoke test_unit create test/controllers/widgets_controller_test.rb invoke helper create app/helpers/widgets_helper.rb invoke jbuilder create app/views/widgets/index.json.jbuilder create app/views/widgets/show.json.jbuilder invoke assets invoke javascript create app/assets/javascripts/widgets.js invoke scss create app/assets/stylesheets/widgets.scss
Затем вы можете запустить rake db:migrate
чтобы настроить таблицу базы данных.
Затем вы можете посетить http: // localhost: 3000 / widgets, и вы увидите полностью функциональный CRUD-эшафот.
Контроллер контроллера Rails
мы можем создать новый контроллер с командой rails g controller
.
$ bin/rails generate controller controller_name
Генератор контроллера ожидает параметры в виде генератора generate controller ControllerName action1 action2
.
Следующее создает контроллер Greetings с действием hello.
$ bin/rails generate controller Greetings hello
Вы увидите следующий вывод:
create app/controllers/greetings_controller.rb
route get "greetings/hello"
invoke erb
create app/views/greetings
create app/views/greetings/hello.html.erb
invoke test_unit
create test/controllers/greetings_controller_test.rb
invoke helper
create app/helpers/greetings_helper.rb
invoke assets
invoke coffee
create app/assets/javascripts/greetings.coffee
invoke scss
create app/assets/stylesheets/greetings.scss
Это генерирует следующее
файл | пример |
---|---|
Файл контроллера | greetings_controller.rb |
Просмотреть файл | hello.html.erb |
Функциональный тестовый файл | greetings_controller_test.rb |
Просмотреть помощника | greetings_helper.rb |
Файл JavaScript | greetings.coffee |
Он также добавит маршруты для каждого действия в routes.rb