私は、複数のエンジンに分割されているRailsプロジェクトのレーキタスクに取り組んでいます。タスクはメインlib/tasks
のRailsアプリケーションのフォルダーにあり、エンジンから新しいものを作成しようとしています( )。Post
Blog
engines/blog/app/models/post
エンジンファイル(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タスクのコードを誰かが持っているかどうかを確認しましたが、具体的なものは何も見つかりませんでした。何か案は?