我修补我的方法来创建一个耙子任务,抓取给定页面的签入量扔脸谱。我使用考拉宝石和铁轨。Rake任务 - 未定义的方法
我这样做是通过创建一个rake任务:
task :get_likes => :environment do
require 'koala'
# Grab the first user in the database
user = User.first
# Loop throw every school & and call count_checkins
School.columns.each do |column|
user.facebook.count_checkins(column.name, user)
end
end
# Count like for every school else return 0
def count_checkins(name, u)
a = u.facebook.fql_query('SELECT checkins FROM page WHERE name = "' + name + '"')
if a[0].nil?
return 0
else
return b = a[0]["checkins"]
end
end
# Initialize an connection to the facebook graph
def facebook
@facebook ||= Koala::Facebook::API.new(oauth_token)
end
但我得到一个错误:
private method `count_checkins' called for #<Koala::Facebook::API:0x007fae5bd348f0>
任何意见或更好的方式来编写一个rake任务将是真棒!
检查完整的错误在这里:https://gist.github.com/shuma/4949213
最后2个方法定义在哪里? – 2013-02-13 23:16:38
@ mind.blank在rake文件中。 – SHUMAcupcake 2013-02-13 23:19:53
您需要在相关的类定义中定义它们。例如'user.facebook'将尝试调用User类的'facebook'方法,但是您定义的方法不附加到该类。 – 2013-02-13 23:22:11