2010-10-15 6 views
0

J'ai une application Rails 3.0.0 qui a un modèle nommé 'Encoding' et fonctionne actuellement sur 1.8.7 fine. J'essaie de passer à la version 1.9.2, mais le nom 'Encoding' est en conflit avec cette version de Ruby.Ruby 1.8.7 - Ruby 1.9.2 et Rails 3.0.0 'Codage' Nom du modèle Conflit

J'ai essayé de créer un nouveau projet, et lors de l'exécution rails g model encoding 1.9.2, il se plaint de donner:

Le nom « encoding » est soit déjà utilisé dans votre application ou réservée par Ruby on Rails. Veuillez choisir une alternative et réexécuter ce générateur.

Lorsque j'ai créé le projet sous 1.8.7, le générateur ne s'est pas plaint. Est-ce que j'ai des options pour passer à Ruby 1.9.2 sans avoir à renommer mes modèles et mes tables? Peut-être une sorte d'espacement des noms? Merci.

Répondre

4

Encoding est une classe qui a été introduite dans ruby ​​1.9. Changez le nom de votre modèle.

+0

L'application est déployée et la modification des noms et des noms de tables nécessitera une énorme quantité de travail. Une chance de faire autre chose? –

+1

Non. En fait: énorme quantité? Renommer le nom de la table est facile en utilisant les migrations. Renommer à l'intérieur de votre projet est mort-facile si vous utilisez Rubymine. Si renommer la table est trop compliqué, vous pouvez écrire dans votre modèle renommé: codages 'set_table_name" '' – nathanvda

+0

Je vais vérifier Rubymine (en utilisant TextMate, il est apparu plus difficile). En outre, nous avons quelques autres requêtes qui s'exécutent sur la base de données qui me préoccupait, mais le set_table_name devrait faire l'affaire! –

Questions connexes