[問題] 無法呼叫成員函式?
環境:Ruby 1.8.6 Rails 2.3.2
狀況:依照這一篇文章http://0rz.tw/MzM5Q去實做,因為一直無法run起來(沒有error)
但是無法將資料新增到database,以下為簡化的code(排錯0rz)
在 app/models/mail_reader.rb中
# app/models/mail_reader.rb
require 'net/pop'
class MailReader < ActionMailer::Base
def receive(email)
p "kerkerker"
#Q:這行都不會被執行0rz,不知道為什麼?
task = Task.new({:name => email.subject, :description => email.body})
end
def self.check_mail
logger = RAILS_DEFAULT_LOGGER
logger.info "Checking for emails..."
Net::POP3.enable_ssl(OpenSSL::SSL::VERIFY_NONE)
#This line raises error if ruby version < 1.8.7
#因為使用的是1.8.6所以本來執行會有error msg但是後來
#我有去下載Ruby1.9的pop然後放到/usr/local/lib/ruby/1.8/net/下
#就沒有error
Net::POP3.start("pop.gmail.com", 995, "account", "passwd") do |pop|
if pop.mails.empty?
begin
logger.info "No emails found."
end
else
pop.mails.each do |email|
begin
mail = TMail::Mail.parse(email.pop)
p "Zeeee~~~"
MailReader.receive(mail)
email.delete
rescue Exception => e
logger.error "[" + Time.now.to_s + "] " + e.message
end
end
end
end
logger.info "Done."
end
end
執行方式./script/runner MailReader.check_mail
目前就是確定有信的話他真的會印出Zeeee~~~,而且可以正確印出header等訊息(有先
debug)但是沒辦法印出receive裡面的kerkerker 0rz,不知道為什麼?想請教依下大
家
謝謝。
附錄:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.45.100.191
※ 編輯: prelight 來自: 114.45.100.191 (05/10 07:53)
※ 編輯: prelight 來自: 114.45.100.191 (05/10 07:54)
※ 編輯: prelight 來自: 114.45.100.191 (05/10 07:54)
→
05/10 09:54, , 1F
05/10 09:54, 1F
→
05/10 09:54, , 2F
05/10 09:54, 2F
→
05/10 18:02, , 3F
05/10 18:02, 3F
→
05/10 18:06, , 4F
05/10 18:06, 4F
→
05/12 00:10, , 5F
05/12 00:10, 5F
→
05/12 00:10, , 6F
05/12 00:10, 6F
→
05/12 01:54, , 7F
05/12 01:54, 7F
→
05/12 01:56, , 8F
05/12 01:56, 8F
→
05/12 01:57, , 9F
05/12 01:57, 9F
→
05/12 12:12, , 10F
05/12 12:12, 10F
→
05/12 14:10, , 11F
05/12 14:10, 11F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
0
11
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章