2008-10-26 15 views
0

J'ai écrit ce code de générateur mais il retourne 'ne peut pas convertir nil en String' quand j'appelle m.directory dans le manifeste. Quelqu'un sait ce qui s'est passé?Générateur Rails Les retours de m.directory ne peuvent pas convertir nil en String

class AuthGenerator < Rails::Generator::NamedBase 
    attr_reader :user_class_name 
    def initialize(runtime_args, runtime_options={}) 
    @user_class_name="User" 
    @controller_class_name="AccountController" 
    @user_class_file_name="#{@user_class_name}.rb" 
    @controller_class_file_name="#{@controller_class_name}.rb" 
    end 

    def manifest 
    record do |m| 
     m.class_collisions @controller_class_name, @user_class 

     puts @user_class_name 
     m.directory File.join('app/models', @user_class_name) 


    end 
    end 

fin

Répondre

1

Où est-il étouffe? S'il vous plaît poster l'erreur complète. Vous pouvez voir la source de la méthode directoryhere.

De plus, vous probablement voulez

m.directory File.join('app/models') 

Avoir une application/modèles/répertoire utilisateur pour votre code généré est pas standard - à moins que vous avez l'intention espaces de noms, qui ne ressemble pas.

0

Votre méthode initialize nécessite un appel à super.