Генерация команды не должна делать вещь. Это просто скрипт, который поможет вам автоматизировать какую-то работу. Что именно сделала эта команда, вы можете увидеть в консоли после запуска команды generate. Это выглядит так:
rails generate scaffold User name:string email:string
invoke active_record
create
db/migrate/20100615004000_create_users.rb
create
app/models/user.rb
invoke
test_unit
create
test/unit/user_test.rb
create
test/fixtures/users.yml
route resources :users
invoke scaffold_controller
create
app/controllers/users_controller.rb
invoke
erb
create
app/views/users
create
app/views/users/index.html.erb
create
app/views/users/edit.html.erb
create
app/views/users/show.html.erb
create
app/views/users/new.html.erb
create
app/views/users/_form.html.erb
invoke
test_unit
create
test/functional/users_controller_test.rb
invoke
helper
create
app/helpers/users_helper.rb
invoke
test_unit
create
test/unit/helpers/users_helper_test.rb
invoke stylesheets
converted by Web2PDFConvert.com
create
public/stylesheets/scaffold.css
Вы можете создавать / изменять все файлы своими руками. Но преимущество использования generate
состоит в том, что он автоматически вызывает все необходимые плагины и т. Д. Для генерации всех необходимых файлов.
Вот почему рекомендуется использовать команду generate даже для очень сложных моделей, контроллеров и т. Д.
Поэтому в вашем случае я бы предложил разделить построение модели на несколько этапов. Это может быть так:
rails generate model Product name:string description:text
rails generate migration AddPriceToProducts price:integer
rails generate migration AddDiscountToProducts discount:integer
and so on
Каждый шаг вы можете откатить на случай, если вы допустили какую-то ошибку и это поможет вам не навредить
ваша база данных.