Estou tentando gerar um controlador com todas as ações RESTful fragmentadas. Eu tinha lido no Wikibooks - Ruby on Rails que tudo que eu precisava fazer era chamar o gerador com o nome do controlador e eu conseguiria exatamente isso. Então, eu corri, script/generate rspec_controller Properties
mas tenho um controlador vazio.
Quaisquer outras sugestões seriam muito apreciadas.
Respostas:
Não sei sobre uma maneira automatizada de fazer isso, mas se você souber:
Todos eles serão criados para você
Atualização para Rails 4
fonte
route get "mycontroller/create"
(criar deve ser um post)No Rails 3 também existe
rails generate scaffold_controller ...
. Mais informações aqui .fonte
rails g controller Foos create
geraria uma rota para aget '/create'
qual não é RESTful.EDITAR (devido a alguns comentários) : A pergunta original foi em 2010 - portanto, a resposta NÃO é para o RAILS 4, mas para o rails 2 !!
tente usar andaimes.
Seção de documentos oficiais em Ruby On Rails
Tenho certeza que você pode encontrar mais informações se fizer uma pesquisa no google sobre andaimes de trilhos. Espero que ajude.
EDITAR: Para RAILS 4
rails g scaffold_controller Property
fonte
rails g scaffold_controller Property
funciona no rails 3.2 também. Isso criará um PropertiesController com TODAS as 7 ações RESTful padrão e suas respectivas visualizações, sem um modelo.No Rails 4/5, o seguinte comando faz o truque para mim.
Ele gerou as ações do controlador, mas não a visualização.
fonte
Rails 5.1
Ponto de partida:
Você criou um modelo sem um controlador, nem pontos de vista (por exemplo, através de:
rails generate model category
)Objetivo:
Faça upgrade para um recurso RESTful completo
Comando:
rails generate scaffold_controller category
Ele stubs um controlador de scaffold, suas sete ações RESTful e visualizações relacionadas. (Nota: Você pode passar o nome do modelo CamelCased ou under_scored.)
Resultado:
varus@septimusSrv16DEV4:~/railsapps/dblirish$ rails generate scaffold_controller category Running via Spring preloader in process 45681 create app/controllers/categories_controller.rb invoke erb create app/views/categories create app/views/categories/index.html.erb create app/views/categories/edit.html.erb create app/views/categories/show.html.erb create app/views/categories/new.html.erb create app/views/categories/_form.html.erb invoke test_unit create test/controllers/categories_controller_test.rb invoke helper create app/helpers/categories_helper.rb invoke test_unit invoke jbuilder create app/views/categories/index.json.jbuilder create app/views/categories/show.json.jbuilder create app/views/categories/_category.json.jbuilder
fonte
Você está procurando um andaime.
Tentar:
Isso lhe dará um controlador, um modelo, uma migração e testes relacionados. Você pode pular a migração com a opção
--skip-migration
. Se você não quiser os outros, terá que excluí-los você mesmo. Não se preocupe em sobrescrever arquivos existentes, isso não acontecerá a menos que você use--force
.Como klew aponta nos comentários, isso também define os corpos dos métodos para você, não apenas os nomes. É muito útil usar como ponto de partida para o controlador REST.
fonte
No Rails 4 é
rails g controller apps new create update edit destroy show index
Ou
rails generate controller apps new create update edit destroy show index
se você quiser escrever o termo completo :).fonte
rails g scaffold_controller apps
no Rails 4script / generate rspec_scaffold Property
fonte
Não há nenhuma maneira (que eu conheço? Que está documentado?) De remover um controlador, exceto por meio de andaimes. Mas você poderia fazer:
fonte
Uma solução é criar um script que aceite um parâmetro, o nome do controlador, e deixar que o script digite o comando inteiro para você.
die () { echo "Please supply new rails controller name to generate." echo >&2 "$@" exit 1 } [ "$#" -eq 1 ] || die "1 argument required, $# provided" rails g controller "$1" new create update edit destroy show index
fonte