我刚刚创建了一个带有 app / models / post.rb 模型的Rails应用程序,并编写了一个刮刀 scrapers / base_scraper.rb (类 BaseScraper )将目标网站的数据收集到哈希变量数据。现在我想将数据值插入发布模型。如何在Rails中正确地完成它?我听说过关于Rake的问题,但不知道如何正确使用它。请帮帮我!
答案 0 :(得分:6)
假设data
只存储一个帖子,并且data
哈希中存储的每个密钥都是有效Post
字段(column_name),您可以这样做:
Post.create(data)
如果要从控制台启动整个过程,可以使用以下内容在流程的lib/tasks
目录下创建rake任务:
# scraper.rake
namespace :scraper do
desc "Run scraper"
task :run => :environment do
data = BaseScraper.your_collect_data_class_method
Post.create(data) if data
end
end
task :default => 'scraper:run'
然后从控制台运行它作为rake scraper
当然我也假设scrapers
目录在你的Rails加载路径中。
如果没有,请将其添加到application.rb
文件中。
# application.rb
...
module YourApp
class Application < Rails::Application
...
config.autoload_paths += Dir["#{config.root}/scrapers/"]
...
end
end