Estoy tratando de agregar un método a mi seeds.rb para que no tenga que escribir un montón de código detallado. Sin embargo, dependiendo de la ubicación del método create_deliverable
, recibo uno de los dos mensajes de error al ejecutar db:setup
.Usando un método en seeds.rb en Ruby On Rails
Cuando método es antes de la llamada
rastrillo abortado! método privado 'create_deliverable' pidió #
Cuando método es después de la llamada
rastrillo abortado! método no definido `create_deliverable' para #
¿No es posible que utiliza métodos de seeds.rb? ¿De alguna manera estoy llamando al método incorrectamente (he intentado llamar con y sin el self.
)?
Método
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
Llamar código
@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
seeds.rb no define ninguna clase, por lo tanto, público y privado no importa. Lo que importa es que defina el método antes de ejecutarlo. –