[在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)>'
我该如何解决这个问题?请帮助我。
我想您可以尝试将include Concerns::User::Tags
移动到任务块中。如果您需要在多个任务中使用模块功能,则可以在每个任务中都包含它。您的问题基本上在这里讨论Is it possible to include modules in rake task and make its methods available for the task in rails app?