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