1

如何在操作文本中发送邮件正文?

Post.rb

has_rich_text :body

after_create :send_email_to_current_user

def send_email_to_current_user
    PostEmailer.create_post(current_user, self)
end

PostEmailer.rb

def create_post(user, post)
   email = user.email
   body = post.body
   mail(to: email, subject: 'create post', body: body)
end

我期望 body 是一个字符串,但我在一个对象中得到了 action_text body

#<ActionText::RichText id: 12, name: "body", body: #<ActionText::Content "<div class=\"trix-conte...">, record_type: "Post", record_id: 16, created_at: "2020-06-18 11:49:04", updated_at: "2020-06-18 11:49:04">

使用 Rails 6.0、Ruby 2.7.1

4

1 回答 1

2

ActionText 有几个方法可以从富文本转换:

尝试.to_s()

mail(to: email, subject: 'create post', body: body.to_s)

或者.to_plain_text()

mail(to: email, subject: 'create post', body: body.to_plain_text)

或者to_html()

mail(to: email, subject: 'create post', body: body.to_html)
于 2020-06-19T10:53:09.523 回答