Mit einer Methode, die in Samen.rb in Ruby On Rails
Ich versuche eine Methode zum hinzufügen meine Samen.rb, so dass ich nicht schreiben eine Reihe von ausführlichen code. Jedoch, abhängig von der Platzierung der create_deliverable
Methode bekomme ich zwei Fehlermeldungen beim ausführen von db:setup
.
Wenn "Methode" auf, bevor der Anruf
rake aborted!
private Methode 'create_deliverable' genannt, für #
Als Methode wird nach dem Aufruf
rake aborted!
undefined method `create_deliverable' für #
Ist es nicht möglich, verwendet Methoden in Samen.rb? Bin ich irgendwie den Aufruf der Methode falsch (ich habe versucht, den Aufruf mit und ohne self.
)?
Methode
def create_deliverable(complexity, project_phase_id, deliverable_type_id)
Deliverable.create(:name => (0...8).map{65.+(rand(25)).chr}.join,
:size => 2 + rand(6) + rand(6),
:rate => 2 + rand(6) + rand(6),
:deliverable_type_id => deliverable_type_id,
:project_phase_id => project_phase_id,
:complexity => complexity)
end
Aufrufende Code
@wf_project.project_phases.each do |phase|
DeliverableType.find_by_lifecycle_phase(phase.lifecycle_phase_id).each do
|type|
self.create_deliverable("Low", type.id, phase.id)
self.create_deliverable("Medium", type.id, phase.id)
self.create_deliverable("High", type.id, phase.id)
end
end
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht für mich so aus das Sie Ihren
create_deliverable
Methode nachprivate
zugriffsmodifizierer in Ihrem Skript. Legen Sie es nachpublic
.Wenn du gehst zu verwenden
self.
verwenden Sie es auf die Methode der definition, nicht der Aufruf.Es ist mein Verständnis, dass
.rb
Dateien ohne definition einer Klasse bekommen, verpackt in einem anonymen ruby-Klasse, wenn Sie ausgeführt werden, so definieren die Methode selbst sollte gut funktionieren..rb
Dateien ohne definition einer Klasse bekommen, verpackt in einem anonymen ruby-KlasseStellen Sie sicher, dass Sie die Methode bestimmen, bevor Sie ihn aufrufen: