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