Поиск…


Вступление

Использование: 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

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

5.0
rake db:migrate
5.0
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



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