Sie sollten dies nicht tun. Erstellen Sie ein Modell? Dann wäre es viel besser, zwei Klassenmethoden auf dem Modell zu haben. Es trennt auch den Code viel besser. Dann können Sie die Methoden nicht nur in Controllern, sondern auch in Hintergrundjobs (etc.) einsetzen.
Zum Beispiel, wenn Sie eine Person erstellen möchten:
class VerboseController < ApplicationController
def create
Person.verbose_create(params)
end
end
class SimpleController < ApplicationController
def create
Person.simple_create(params)
end
end
Dann in der Person-Modell, das Sie weitergehen könnte:
class Person
def self.verbose_create(options)
# ... do the creating stuff here
end
def self.simple_create(options)
# Prepare the options as you were trying to do in the controller...
prepared_options = options.merge(some: "option")
# ... and pass them to the verbose_create method
verbose_create(prepared_options)
end
end
Ich hoffe, dass dies ein wenig helfen kann. :-)
bist du sicher, dass du das brauchst? Wäre nicht angemessener, ausführlich als Modellmethode zu erstellen? –
Es ist großartig, jeder sagt, es sollte nicht getan werden, aber manchmal muss es getan werden. Zum Beispiel um POST-Daten nach der Authentifizierung wiederherzustellen usw. –
@TheDoctorWhat Das Wiederherstellen von POST-Daten nach der Authentifizierung ist wahrscheinlich der * einzige * Fall, in dem so etwas Sinn macht, und selbst dort würde ich nach einem anderen Ansatz suchen. In dem Kontext, in dem die Frage gestellt wurde, ergibt das sicherlich keinen Sinn. –