2010-08-03 5 views
8

¿Existe alguna manera fácil de cambiar el nombre de un controlador? La única forma que conozco es hacerlo a mano o generar un nuevo controlador mover el código y destruir el anterior. Parece que tiene que haber una forma programática para hacer esto.Manera fácil de cambiar el nombre de los controladores de rieles

+0

No tengo muy claro cuál es la dificultad ... ¿Le preocupa cambiar el nombre de las rutas y los enlaces? –

+0

Es mucho trabajo cuando tienes un montón, estoy buscando mover muchos de mis controladores a un espacio de nombres para una mejor organización. – hadees

+1

@Andres: una parte difícil es mover la base de datos también. RubyMine lo olvida cuando se refactoriza. –

Respuesta

4

Algunos IDE (como IntellyJ's RubyMine) le permiten Refactorizar -> Renombrar un archivo/variable/método, etc., aunque no es tan confiable en un lenguaje dinámico como Ruby en un lenguaje como Java.

2

Acababa de generar un controlador, por lo que no tenía un modelo asociado o una tabla de base de datos. Decidí cambiar el nombre de todos los archivos y el contenido relevante que se creó cuando genere el controlador. No es una forma 'fácil' de cambiar el nombre del controlador, pero tenía confianza en mi conocimiento de lo que se había creado y de lo que necesitaba para refactorizar.

Hay una buena guía sobre los ruby on rails guides sitios web que muestra lo que se genera y lo que necesita para editar o se puede ver que es lo típico controlador genera a continuación:

$ 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 

Además, no se olvide de editar el contenido de los archivos anteriores, cosas como descripciones en sus archivos de activos, nombres de clases de controladores y nombres de módulos, etc.

Cuestiones relacionadas