enthalten Kurz gesagt, ich versuche, Formularwerte entsprechend den Attributen auf dem Versionsmodell (von paper_trail gem geliefert) an einen Controller übergeben, der eine benutzerdefinierte Methode aufruft, die Führt eine optimierte Suche durch. Aber ich erhalte einen NoMethodError. Die Methode funktioniert wie vorgesehen, wenn sie innerhalb des Initialisierers selbst, aber nicht an anderer Stelle deklariert wird. Irgendwelche Gedanken zur Reparatur?Wie Bedenken in Initializer mit Verschachtelung auf Rails 5 App
-Code ist unten - ich habe Teile weggelassen, die nicht relevant schien:
app/controllers/Arbeiter/csr_activities_controller.rb
class Worker::CustomerSupportActivitiesController < Worker::BaseController
def index
PaperTrail::Version.search_versions(resource_params)
end
...
private
def resource_params
params.fetch(:query).permit(:whodunnit, :event, :item_type, :term, :start_date, :end_date)
end
end
app/controllers/Anliegen/search_versions.rb
module SearchVersions
extend ActiveSupport::Concern
def search_versions(params)
...
end
end
config/initializers/paper_trail.rb
Terminal
...
[51e4ee33-6308-4861-bf3a-e1c51ecdfac0] NoMethodError (undefined method `search_versions' for #<Class:0x007f94e5ed2a70>):
...
Während Sie richtig sind, ist Ihre Terminologie nicht * "Ich rufe die Suchmethode auf einem Modul statt einer Instanz auf" * Sie rufen die Methode der 'Class'' Version' auf, die um das 'Module erweitert wurde '' SearchVersions' '(** Sidenote **: in diesem Fall ist alles eine Instanz 'PaperTrail :: Version' ist eine Instanz der' Class' 'Class') – engineersmnky
Guten Fang @engineersmnky. Danke für die Klarstellung. – lgants