私の個人用ウェブサイトをRails 5でビルドするために、私は連絡先フォームを送信するための仕事を実装しようとしています。私はdelayed_job_active_record gemを使用しています。Delayed_jobを実装しているActiveJobの問題
私は仕事のContactMessageJobを生成:
app/jobs/contact_message_job.rb
class ContactMessageJob < ApplicationJob
queue_as :contact_message
def perform(message)
MessageMailer.send_message(message).deliver_now
end
end
はその後MessagesControllerに私はContactMessageJob上perform_laterメソッド呼んでいる:
app/controllers/messages_controller.rb
...
def create
@message = Message.new(message_params)
if @message.valid?
ContactMessageJob.perform_later(@message)
redirect_to contact_path, notice: "Your message has been sent."
else
flash[:alert] = "An error occured while delivering this message."
render :new
end
end
を私はを介してメッセージを送信しようとしているときContactMessageJob.perform_later(@メッセージ)を実行するとこのエラーが発生します。
ActiveJob::SerializationError at /contact
Unsupported argument type: Message
私はActiveJobを使うのがちょっと新しいので、どうすればこの問題を解決できるか分かりません。どんな提案も大歓迎です。
私のレポはである:https://github.com/acandael/personalsite/tree/job
挨拶、
アンソニー