2011-11-03 17 views
8

Il metodo normale di scaffolding non funziona se si lavora con una risorsa singolare, esiste un modo per ottenere i controller singolari predefiniti tramite scaffolding? Dire se un utente ha un solo post c'è un facile era quello di eseguire un comando come:Esiste un modo per impalcare una risorsa singleton nei binari?

rails g scaffold post -singular 

risposta

2

Quando si guardano le opzioni di ponteggio in Rails 3.1.1, si vedrà il seguente:

Usage: 
    rails generate scaffold NAME [field:type field:type] [options] 

Options: 
    ... 

ActiveRecord options: 
    ... 

Rspec options: 
    [--singleton]     # Supply to create a singleton controller 

l'uscita del rails g scaffold Post name:string body:text --singleton è

invoke active_record 
    create db/migrate/20111103072825_create_posts.rb 
    create app/models/post.rb 
    invoke rspec 
    create  spec/models/post_spec.rb 
    route resources :posts 
    invoke scaffold_controller 
    create app/controllers/posts_controller.rb 
    invoke haml 
    create  app/views/posts 
    create  app/views/posts/index.html.haml 
    create  app/views/posts/edit.html.haml 
    create  app/views/posts/show.html.haml 
    create  app/views/posts/new.html.haml 
    create  app/views/posts/_form.html.haml 
    invoke rspec 
    create  spec/controllers/posts_controller_spec.rb 
    create  spec/views/posts/edit.html.haml_spec.rb 
    create  spec/views/posts/new.html.haml_spec.rb 
    create  spec/views/posts/show.html.haml_spec.rb 
    invoke  helper 
    create  spec/helpers/posts_helper_spec.rb 
    create  spec/routing/posts_routing_spec.rb 
    invoke  rspec 
    create  spec/requests/posts_spec.rb 
    invoke helper 
    create  app/helpers/posts_helper.rb 
    invoke  rspec 
    invoke assets 
    invoke coffee 
    create  app/assets/javascripts/posts.js.coffee 
    invoke scss 
    create  app/assets/stylesheets/posts.css.scss 
    invoke scss 
identical app/assets/stylesheets/scaffolds.css.scss 

così sembra che l'impalcatura genera i soliti modelli di vista.

In Rails 3.0 questa era un'opzione per l'intero generatore, non solo quella per Rspec. Vedi lo Railscast 216 for Generators in Rails 3. Forse troverai un generatore in Rails 3.0.x che soddisferà le tue esigenze.

+0

hmm, come nella documentazione fornita nel collegamento, è necessario passare l'opzione -c, --singleton per fare in modo che funzioni. Tuttavia quando l'ho digitato nella riga di comando ha eseguito il tipo regolare di generatore di scaffold. – tomciopp

0

Sono d'accordo con questo, quindi ho creato uno Github issue. Segui questo se aiuta. Tuttavia ho trovato l'unico modo per risolvere questo problema è quello di risolvere manualmente il problema. Ciò significa cambiare i nomi a mano. So che non vuoi farlo ma ho trovato alcune volte che è l'unico modo.

+0

Vedere la soluzione sopra per mliebelt funziona benissimo – Brandt

Problemi correlati