【发布时间】:2017-08-16 21:13:05
【问题描述】:
我的 Rails 4 应用程序中有一个 Document 模型,它的开头如下:
class Document < ActiveRecord::Base
TYPES = [FileList, Article, VariantList, LinkedItemsList].collect(&:model_name)
...
end
TYPES 数组包含我的应用程序中的其他模型列表,并在一些地方使用,例如在我的一个表单中显示可能的文档类型列表。
现在我正在编写一个 Rake 任务来自动化一些东西,当我运行该任务时,我在 Document 模型的第 2 行收到了这个错误:
NoMethodError: undefined method 'model_name' for Rake::FileList:Class
显然,首先加载了Rake::FileList 类,但我遇到了名称冲突。在我的代码中使用 ::FileList 没有帮助,我得到了同样的错误。
知道如何在不重命名模型的情况下解决这个问题吗?
更新:
我的 Rake 任务定义如下所示:
namespace :store do
desc 'Some description'
task :my_task_name, [:a_parameter_name] => [:environment] do |t, args|
...
end
end
我认为这是正确加载环境,因为我在到达 Document 之前调用(从 DB 加载)一些其他模型并且工作正常。
【问题讨论】:
-
在您的 rake 任务中,您是否正在加载环境?喜欢
task mytask: :environment do -
@JCorcuera 我用我的任务定义更新了我的问题
标签: ruby-on-rails ruby rake