我正在尝试向我的seeds.rb 添加一个方法,这样我就不必编写一堆冗长的代码。但是,取决于 create_deliverable
的位置方法我在运行时收到两条错误消息之一 db:setup
.
当方法在调用之前
rake aborted! private method 'create_deliverable' called for #
当方法在调用之后
rake aborted! undefined method `create_deliverable' for #
不能在seeds.rb 中使用方法吗?我是否以某种方式错误地调用了该方法(我尝试使用和不使用
self.
进行调用)?方法
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
调用代码
@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
最佳答案
在我看来就像你放置了你的 create_deliverable
private
之后的方法脚本中的访问修饰符。放在后面 public
.
public
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
private # to keep the rest of methods private
关于ruby-on-rails - 在 Ruby On Rails 中使用seeds.rb 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1750700/