-2

/app/アイデアは単純です:ディレクトリ内にクラスの階層を作成し、もちろんそれらを使用します。だから私は/namespaceディレクトリを作成しました.

#app/namespace/base.rb
module Namespace
  class Base
    def initialize item
      puts 'Namespace Base'
    end
  end
end


#app/namespace/class1.rb
class Namespace::Class1 < Namespace::Base
  def initialize item
    puts 'Namespace Class1'
  end
end

#app/namespace/class2.rb
class Namespace::Class2 < Namespace::Base
  def initialize item
    puts 'Namespace Class2'
  end
end

#somewhere in a controller
a = Namespace::Class1.new

私が持っているエラーはコンストラクターでinitialize: wrong number of arguments (0 for 1) (ArgumentError)発生します。Class1

私は何を間違えましたか?

4

3 に答える 3

1

これはRuby on Railsとしてマークされているため、これはレール固有の回答になります-これがあなたに関係ない場合は、質問を編集してレールを取り出してください;)

Railsの「名前空間」を明確にしてください。

「routes.rb」に「/namespace」ディレクトリを作成するには、実際に Rails の「namespace」メソッドを使用してこれを作成できます。

namespace :namespace do
  get 'something' => 'some#action'
  put 'something' => 'some#otheraction'
end

使用するレールルートを作成します/namespace/something

于 2013-07-05T13:58:39.497 に答える