在Ruby on Rails中放置模型“实用程序”函数的位置,如果在rake任务中也需要它?

时间:2011-09-28 19:58:49

标签: ruby-on-rails ruby rake

这是以下问题的第2部分:

Where to put model "utility" functions in Ruby on Rails

问题是,我还需要从rake任务访问这些实用程序功能。在另一个线程中使用接受的技术,从rake任务访问我的模型时出现“未定义的方法”错误。

解决此问题的最佳方法是什么? 感谢

1 个答案:

答案 0 :(得分:3)

您可能需要将rake任务定义为依赖于Rails环境:

task :my_task => :environment do
  # Will load Rails stack before executing this block

  MyModel.foo
end

默认行为是几乎不加载任何内容,因此除非您要求,否则无法访问模型。