如何在rake任务中包含模块类?

问题描述 投票:0回答:1

[在Rails 4应用中,我正在尝试创建一个耙任务。我正在尝试为其提供模块功能,但无法正常工作。

模块文件是(/app/models/concerns/user/tags.rb),

 module Concerns::User::Tags
   extend ActiveSupport::Concern
   ...
 end

Rakefile是(/lib/tasks/keywords.rake),

require "#{Rails.root}/app/models/concerns/user/tags.rb"
include Concerns::User::Tags

namespace :keywords do
  desc 'Add data'
  task :add => :environment do
    puts "Adding"
  end
end

[当我运行此bundle exec rake keywords:add -t时出现类似错误,

NameError: uninitialized constant Concerns
/vagrant/app/models/concerns/user/tags.rb:1:in `<top (required)>'
/vagrant/lib/tasks/keywords.rake:1:in `<top (required)>'

我该如何解决这个问题?请帮助我。

ruby-on-rails module include rake require
1个回答
0
投票

我想您可以尝试将include Concerns::User::Tags移动到任务块中。如果您需要在多个任务中使用模块功能,则可以在每个任务中都包含它。您的问题基本上在这里讨论Is it possible to include modules in rake task and make its methods available for the task in rails app?

© www.soinside.com 2019 - 2024. All rights reserved.