Rails 4:Rake scraper任务不起作用

时间:2015-02-05 10:33:04

标签: ruby-on-rails ruby

使用3个水龙头API构建租赁刮刀。并希望删除一些旧帖子。

在rails控制台中创建新锚点

2.0.0p247 :001 > @anchor = Anchor.new
 => #<Anchor id: nil, value: nil, created_at: nil, updated_at: nil> 
2.0.0p247 :002 > @anchor.value ="1795931327"
 => "1795931327" 
2.0.0p247 :003 > 
2.0.0p247 :004 > Anchor.first.value
  Anchor Load (0.4ms)  SELECT  "anchors".* FROM "anchors"   ORDER BY "anchors"."id" ASC LIMIT 1
 => "1795931327" 

我现在想要删除我在我的数据库中的旧帖子(目前我有1000个帖子),这些帖子在2天内没有更新。

所以我想显示新的列表,所以我输入

Neils-MacBook-Pro-2:craigslist_scraper1 neilpatel$ rake scraper: destroy_all_posts

但我收到错误

耙子流产了! 不知道如何构建任务'scraper:'

我知道这在过去有效,因为在我的scraper.rake文件中我有这个

desc "Destroy all posting data"
  task destroy_all_posts: :environment do
    Post.destroy_all
  end

任何想法??

更改为

命名空间:刮刀做   desc“销毁所有发布数据”   task destroy_all_posts ::环境做     Post.destroy_all   结束 端

post_controller.rb

def destroy
    @post.destroy
    respond_to do |format|
      format.html { redirect_to posts_url, notice: 'Post was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

2 个答案:

答案 0 :(得分:0)

我认为您错过了namespace文件中的scraper.rake。这应该有效:

namespace :scraper do
  desc "Destroy all posting data"
  task destroy_all_posts: :environment do
    Post.destroy_all
  end 
end

如果您再输入rake -T scraper,则应该看到:

rake scraper:destroy_all_posts  # Destroy all posting data

答案 1 :(得分:0)

desc "Destroy all posting data"
  task destroy_all_posts: :environment do
    Post.destroy_all
  end 

此任务在循环外运行,而不在内部,现在重新测试工作