在我的任务文件
然而,当我在这个文件中定义它并重新使用时,它返回的是:
post.rake
中,我想要重复使用一个函数。 def save_post(title, href, source)
post = Post.new(title: title, url: href, source: source)
if post.save
puts title + 'saved'
else
puts title + 'not saved'
end
end
然而,当我在这个文件中定义它并重新使用时,它返回的是:
NoMethodError: undefined method `save_post' for main:Object
post.rake
的内容如下:
task :fetch_post => :environment do
require 'nokogiri'
require 'open-uri'
url = 'http://example.com'
doc = Nokogiri::HTML(open(url) )
puts doc.css("title").text
doc.css(".a").each do |item_info|
title = item_info.text
href = item_info['href']
save_post(title, href)
end
def save_post(title, href)
post = Post.new(title: title, url: href)
if post.save
puts title + 'saved'
else
puts title + 'not saved'
end
end
end
内容抓取部分已经可以正常工作。我只是将保存文章的代码移出来,希望将这个方法抽象出来。
我应该把def method
放在哪里呢?