Строительные леса Rails4 Пустой контроллер
Я использую несколько строительных лесов в своем проекте testapp.
я создал 1-й эшафот так:
rails g Post title desc:text
это было успешно и создало все соответствующие файлы и контроллер также.
но когда я сделал еще один эшафот:
testapp$ rails g scaffold product name:string information:text 'price:decimal{7,2}' stock:integer available:boolean
invoke active_record
create db/migrate/20140513062549_create_products.rb
create app/models/product.rb
invoke test_unit
create test/models/product_test.rb
create test/fixtures/products.yml
invoke resource_route
route resources :products
invoke inherited_resources_controller
create app/controllers/products_controller.rb
invoke erb
create app/views/products
create app/views/products/index.html.erb
create app/views/products/edit.html.erb
create app/views/products/show.html.erb
create app/views/products/new.html.erb
create app/views/products/_form.html.erb
invoke test_unit
create test/controllers/products_controller_test.rb
invoke helper
create app/helpers/products_helper.rb
invoke test_unit
create test/helpers/products_helper_test.rb
invoke jbuilder
create app/views/products/index.json.jbuilder
create app/views/products/show.json.jbuilder
invoke assets
invoke coffee
create app/assets/javascripts/products.js.coffee
invoke scss
create app/assets/stylesheets/products.css.scss
invoke scss
identical app/assets/stylesheets/scaffolds.css.scss
но когда я открываю контроллер app/controllers/products_controller.rb
пусто, почему так??
Еще 1 вещь, которую я также использую activeadmin, я знаю, что это не имеет никакого отношения к этому.
1 ответ
Я не могу воспроизвести это на базовой установке Rails:
$ rails new empty && cd empty
$ rails g scaffold Post title desc:text
$ rails g scaffold product name:string information:text 'price:decimal{7,2}' stock:integer available:boolean
После этого, app/controllers/products_controller.rb
имеет все строки, которые я ожидал бы иметь:
$ wc -l app/controllers/products_controller.rb
74 app/controllers/products_controller.rb
Тем не менее, если я добавлю ActiveAdmin в Gemfile:
$ echo 'gem "activeadmin", github: "gregbell/active_admin"' >> Gemfile && bundle
и создать эшафот:
$ rails g scaffold product name:string information:text 'price:decimal{7,2}' stock:integer available:boolean
мой app/controllers/products_controller.rb
содержит намного меньше кода. Это не пусто, но почти:
class ProductsController < InheritedResources::Base
end
Если это также и то, что вы видите, ваша проблема связана с тем, что ActiveAdmin используеттекайские_ресурсы для выполнения некоторых тяжелых работ. И у вас получился контроллер InheritedResource.
Контроллер должен работать отлично, хотя.