0
我正在爲Rails項目分割爲多個引擎進行Rake任務。該任務位於主要的 Rails應用程序的lib/tasks
文件夾中,並且試圖從Blog
引擎(engines/blog/app/models/post
)創建新的Post
。Rake任務中的Rails引擎模型
引擎文件(blog/lib/blog/engine.rb
)看起來像:
module Blog
class Engine < ::Rails::Engine
isolate_namespace Blog
end
end
所以,如果我理解正確,引用Blog::ModelHere
是正確的語法。這裏的耙子任務:
namespace :blog do
desc "Import blog posts from old Wordpress site"
task :import => :environment do
# ... generating variables here
post = Blog::Post.create!(
post.title = title,
post.slug = title.parameterize,
post.date = date,
post.user_id = User.find_by_name(user).id,
post.content = content,
post.tags = tags
)
end
end
返回...
undefined method 'title=' for nil:NilClass
這似乎窒息了Blog::Post
電話。我也試過::Blog::Post
,但這似乎沒有多大意義。我也試着將它保存在blog/lib/tasks
作爲引擎任務,但我無法做到這一點。
我查看過SO和Github,看看有沒有人在引擎中有Rake任務的代碼,但找不到具體的東西。有任何想法嗎?
太棒了。我絕對誤讀了返回的錯誤。你是一個救星! – Kristian 2013-02-16 00:13:53