2010-08-03 15 views
8

Gibt es eine einfache Möglichkeit, einen Controller umzubenennen? Der einzige Weg, den ich kenne, ist, es entweder per Hand zu machen oder einen neuen Controller zu generieren, den Code zu verschieben und den alten zu zerstören. Scheint so, als müsste es einen programmatischen Weg dafür geben.Einfache Möglichkeit zum Umbenennen von Schienen-Controllern

+0

Ich bin nicht so klar, was die Schwierigkeit ist ... Machst du dir Sorgen über Umbenennen von Routen und Links? –

+0

Es ist nur eine Menge Arbeit, wenn Sie eine Menge haben, ich bin dabei, viele meiner Controller in einen Namespace für eine bessere Organisation zu bewegen. – hadees

+1

@Andres: Ein schwieriges Teil bewegt auch die Datenbank. RubyMine vergisst es beim Refactoring. –

Antwort

4

Einige IDEs (wie RubyMine von IntelliJ) lassen Sie Refactor -> Rename eine Datei/Variable/Methode etc, obwohl es nicht so zuverlässig in einer dynamischen Sprache wie Ruby ist, wie es in einer Sprache wie Java ist.

2

Ich hatte gerade einen Controller generiert und so hatte ich keine Modell- oder Datenbanktabelle zugeordnet. Ich beschloss, alle Dateien und relevanten Inhalte, die beim Generieren des Controllers erstellt wurden, umzubenennen. Es ist keine "einfache" Möglichkeit, den Controller umzubenennen, aber ich hatte Vertrauen in mein Wissen darüber, was erstellt wurde und was ich umgestalten musste.

Es gibt eine gute Führung auf den ruby on rails guides Websites, die zeigen, was erzeugt wird, und das, was Sie brauchen, zu bearbeiten oder Sie können ein typischer Controller sehen, was unten erzeugt:

$ 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 

auch zu bearbeiten, nicht vergessen den Inhalt der oben genannten Dateien, Dinge wie Beschreibungen in Ihren Assets Dateien, Controller Klassennamen und Modulnamen usw.

Verwandte Themen