ruby-on-rails - 在 Ruby On Rails 中使用seeds.rb 中的方法

标签 ruby-on-rails seed

我正在尝试向我的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/

相关文章:

ruby-on-rails - 通过 Devise_Invitable 发送邀请时向用户添加属性

ruby-on-rails - Rails 中一列字段的多个值

java - 如果 1+ 个实例具有相同(最小)值,如何从确定最小值的循环中随机选择一个对象?

c++ - 更好的随机算法?

ruby-on-rails - Rails : . create 使 :id 的自定义值无效

python - 有没有一种在模块之间共享随机种子的好方法(在 python 中)?

ruby-on-rails - 从 Rails 4.1.4 更新到 4.2.0 后,AR CollectionProxy 上的 "first!"引发 "undefined method [] for nil"

ruby-on-rails - 使用外键作为复合键的一部分

mysql - 检查时间重叠(ruby/mysql)

download - 使用aria2c完成下载后如何立即关闭连接?