Betrachten ich in /lib/foo/bar/baz.rb
befindet sich eine Klasse nicht funktioniert, wie folgt definiert:Fügen Sie nicht in Rails-Controller
module Foo
module Bar
class Baz
def initialize
self.name = 'Baz'
end
end
end
end
Ich habe auch die folgenden Controller /controllers/my_controller.rb
, wie folgt definiert:
class MyController < ApplicationController
def index
render json: ::Foo::Bar::Baz.new
end
end
was gibt JSON {name: "Baz"}
wie man erwarten würde.
Das Problem ist, wenn ich versuche, das Foo::Bar
Modul enthält, so habe ich es nicht auf den Namen Baz
Klasse jedes Mal, wenn ich es will prepend verwenden:
class MyController < ApplicationController
include ::Foo::Bar
def index
render json: ::Baz.new
end
end
Gibt mir die folgenden Fehler Nachricht: uninitialized constant Baz
.
Warum ???
Entfernen Sie das '::' in 'render json: :: Baz'. – Aetherus