0
我想在rails的某個時候使用Whenever插件來執行模型進程。試圖發送郵件給多個用戶時出現Rails錯誤
當我嘗試在我的用戶模型中使用mail_out進程時,出現以下錯誤。有人能請我指出發生了什麼問題的正確方向嗎?
/var/lib/gems/1.8/gems/rails-2.3.5/lib/commands/runner.rb:48: /var/lib/gems/1.8/gems/activesupport-2.3.5/lib/active_support/dependencies.rb:380:in `load_without_new_constant_marking': /home/tnederlof/Dropbox/Ruby/daily_trailer/app/models/user.rb:9: syntax error, unexpected tIDENTIFIER, expecting ')' (SyntaxError) @users = find(:all, :conditions => "#{weekday}sub = "t"")
我schedule.rb如下:
every 1.day, :at => '5:30 am' do
runner "User.mail_out"
end
我的用戶模型爲:
class User < ActiveRecord::Base
acts_as_authentic
def self.mail_out
weekday = Date.today.strftime('%A').downcase
@users = find(:all, :conditions => "#{weekday}sub = t")
@users.each { |u| UserMailer.deliver_mail_out(u)}
end
end
我user_mailer文件是:
class UserMailer < ActionMailer::Base
def mail_out(users)
@recipients = { }
users.each do |user|
@recipients[user.email] = { :name => user.name }
end
from "[email protected]"
subject "Check out the trailer of the day!"
body :user => user
end
end
遷移:
create_table "users", :force => true do |t|
t.string "email"
t.date "birthday"
t.string "gender"
t.string "zipcode"
t.datetime "created_at"
t.datetime "updated_at"
t.string "crypted_password"
t.string "password_salt"
t.string "persistence_token"
t.string "mondaysub", :default => "f", :null => false
t.string "tuesdaysub", :default => "f", :null => false
t.string "wednesdaysub", :default => "f", :null => false
t.string "thursdaysub", :default => "f", :null => false
t.string "fridaysub", :default => "f", :null => false
t.string "saturdaysub", :default => "f", :null => false
t.string "sundaysub", :default => "f", :null => false
end
謝謝,你對我的解釋非常有幫助。完美的感覺! – 2010-02-02 14:05:15