0

我已经编写了这个生成器代码,但是当我在清单中调用 m.directory 时它返回“无法将 nil 转换为字符串”。有谁知道发生了什么?

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

结尾

4

2 回答 2

1

它在哪里窒息?请发布完整的错误。您可以在此处查看该directory方法的来源。

另外,你可能只是想要

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

为生成的代码创建一个 app/models/user 目录不是标准的——除非你打算使用命名空间,但它看起来不像。

于 2008-10-26T16:54:38.890 回答
0

您的初始化方法需要调用 super。

于 2009-06-06T01:24:00.800 回答