C'è un modo semplice per rinominare un controller? L'unico modo che conosco è di farlo a mano o di generare un nuovo controller per spostare il codice e distruggere quello vecchio. Sembra che ci debba essere un modo programmatico per farlo.Un modo semplice per rinominare i controller delle guide
risposta
Alcuni IDE (come RubyMine di IntelliJ) ti consentono Refactor -> Rinomina un file/variabile/metodo ecc., Anche se non è affidabile in un linguaggio dinamico come Ruby come in un linguaggio come Java.
Avevo appena generato un controller e quindi non avevo un modello associato o una tabella di database. Ho deciso di rinominare tutti i file e il contenuto pertinente che è stato creato quando ho generato il controller. Non è un modo "facile" per rinominare il controller, ma ho avuto fiducia nella mia conoscenza di ciò che è stato creato e di ciò che avevo bisogno di refactoring.
C'è una buona guida sui ruby on rails guides siti web che mostra ciò che è generato e che cosa è necessario modificare o si può vedere ciò che un controller tipico genera seguito:
$ bin/rails generate controller Greetings hello
create app/controllers/greetings_controller.rb
route get "greetings/hello"
invoke erb
create app/views/greetings
create app/views/greetings/hello.html.erb
invoke test_unit
create test/controllers/greetings_controller_test.rb
invoke helper
create app/helpers/greetings_helper.rb
invoke assets
invoke coffee
create app/assets/javascripts/greetings.js.coffee
invoke scss
create app/assets/stylesheets/greetings.css.scss
Inoltre, non dimenticare di modificare il contenuto dei file sopra, cose come le descrizioni nei file delle risorse, nomi delle classi controller e nomi dei moduli ecc.
Non sono così chiaro su quale sia la difficoltà ... Sei preoccupato di rinominare percorsi e collegamenti? –
È solo un sacco di lavoro quando si ha un sacco, sto guardando spostare molti dei miei controller in uno spazio dei nomi per una migliore organizzazione. – hadees
@Andres: una parte difficile è anche lo spostamento del database. RubyMine lo dimentica quando refactoring. –