2011-11-13 13 views

risposta

75
rails g scaffold User --migration=false --skip 

Il --skip significa saltare i file già esistenti. (L'opposto è --force.)

Se non si desidera aiutanti, --helpers=false.

uscita del campione dopo l'eliminazione miei User vista:

 invoke active_record 
    identical app/models/user.rb 
     invoke test_unit 
    identical  test/unit/user_test.rb 
     skip  test/fixtures/users.yml 
     route resources :users 
     invoke scaffold_controller 
    identical app/controllers/users_controller.rb 
     invoke erb 
     exist  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 
    identical  test/functional/users_controller_test.rb 
     invoke helper 
    identical  app/helpers/users_helper.rb 
     invoke  test_unit 
    identical  test/unit/helpers/users_helper_test.rb 
     invoke assets 
     invoke coffee 
    identical  app/assets/javascripts/users.js.coffee 
     invoke scss 
    identical  app/assets/stylesheets/users.css.scss 
     invoke scss 
    identical app/assets/stylesheets/scaffolds.css.scss 
+1

Nota: se si desidera che le viste generate abbiano attributi, è necessario includerle dopo il modello e.g Nome utente: string email: string ecc. – skalb

+0

Cosa fa "--migration = false"? –

+1

@KevinZhao ... Non genera migrazioni. –

2

"Un altro strumento" ...

Come di essere in grado di fare "script/generate view_for model_name"? :)

Esiste una gemma - View Mapper. Ha versioni Ruby on Rails 2 e 3.

+1

vecchio, obsoleto <3 – bbozo

+2

sì, che era del 2011, ora di 4 anni. –

1

Un piccolo suggerimento è quello di aggiungere "--no-test-framework" se si utilizza Rspec e non vogliono file di test generati per ogni visualizzazione in spec/viste

2

Ho appena incontrato lo stesso problema. L'ho fatto. Maggiori dettagli sono riportati di seguito:
- Per prima cosa rinominare le viste/la cartella your_model in views/your_model_bak. Al fine di ripristinare, se non riuscire più tardi
- Poi, eseguire il comando

rails g scaffold YourModel [field[:type][:index]] --skip 
  • Non dimenticate opzione --skip, non creerà esistere file (controllore e il modello in questo caso e pochi altri file)
  • assicurarsi che la lista [campo [: tipo] [: index]] è aggiornata

- Infine, è necessario aggiornare il vostro permesso controller your_model.

Spero che possa aiutarti.

-1

Per generare viste dopo che il controller e i modelli sono già stati creati, è possibile utilizzare la riga di comando. Si passa alla cartella in cui si desidera creare la nuova vista. Per esempio:

$ cd name_app/app/views/controller_name 
$ touch name_file 

Per tornare su un uso directory:

$ cd .. 
+1

...? O semplicemente crea il file in un editor. Non vedo come questo sia in particolare un file di aiuto, in pratica dice "crea il file creando il file", e non crea tutti i file Rails associati, solo quello che hai creato sulla riga di comando. –

12

Questo è ciò che il generatore di scaffold chiama internamente:

rails g erb:scaffold User 

erb è il motore di template utilizzato, in modo da può anche usare haml:scaffold.

È necessario specificare in modo esplicito i campi che si desidera utilizzare per il ponteggio: le barre non sostituiscono automaticamente il valore dal modello creato.Per esempio:

rails g erb:scaffold User firstname lastname reputation 

Vedi rails g --help per le opzioni, come saltare, sovrascrivendo costringendo, e corre a secco o generate scaffold --help per informazioni specifiche per la generazione di ponteggi.

+1

Mi sembra che questa sia la risposta corretta. Tutte le altre opzioni genereranno tutto ciò che manca. Questo genera solo le viste. Grazie :) –

Problemi correlati