Ich verwende Rails 4.2.5. Ich habe diese SuperklasseIn RoR, wie bekomme ich eine Unterklasse meiner Dienstklasse, um eine Klassenvariable in seiner Superklasse zu erkennen?
class AbstractImportService
def initialize(params)
@init_url = params[:init_url]
end
private
attr_reader :init_url
und dann, dass diese Klasse erbt von ihm
class MyService < AbstractImportService
def self.my_method(runner_id)
puts "init_url: #{@init_url}"
…
end
Das Problem ist, die in dem Verfahren „self.my_method“, die Puts Linie druckt „init_url:“ even wenn ich erstmal die @init_url zu etwas mache. Rails hat kein geschütztes Konzept, also gibt es eine andere Möglichkeit, wie ich Unterklassen Klassenvariablen der Superklasse erkennen kann?
ich aus Ihrer Antwort nicht klar bin, was hcanges ich machen muss, damit ich den Wert von „@init_url“ innerhalb der MyService Klasse erkennen kann. Bitte erarbeiten und Code-Beispiele sind immer nützlich. –
Ok, ich werde die obige Antwort bearbeiten und das Codebeispiel hinzufügen. Ist es in Ordnung @Mike? –