La sintaxis hash de Ruby se muestra en correos electrónicos enviados a usuarios eliminados

When a user is deleted by rejecting their first post, they are sent an email with the subject line of Your account has been deleted.

There is a bug in the body / content of the email, it appears to be displaying some kind of Ruby hash syntax in the middle section of the email:


Here’s a screen shot of the email the user receives, showing the formatting:


Steps to replicate:

  1. Ensure Discourse requires the first post of every user to be approved
  2. Create a new user
  3. Create a new post with the new user
  4. Using an admin account, reject the post with the “Delete user” option
  5. New user is sent an email with the above content
1 me gusta

If it helps, a couple of screen shots from the admin view of the rejected post:

Before deleting the user:

After rejection and deletion:

1 me gusta

It happened on my site too. I think the email doesn’t work when the post wasn’t added to the review queue because of a flag, but because it requires aporoval.

I first noticed when I was testing the Approve unless staged site setting and deleted the user when the post arrived and required approval. This was even more confusing as the user doesn’t really have an account. They only used email in.

I would be grateful if, in addition to the fix for non-flag reviewables such as post approval, a different handling method could also be found for staged users, who do not actually have an account.
(Similarly, I would still be grateful if the email were only sent once deletion was successful, if custom flag reasons worked, and if forums where the guidelines are not public did not refer to them in the email)

3 Me gusta

This looks like a bug in how flag_reason is generated here:

PostActionTypeView.new.types doesn’t include :needs_approval flag (which gets created in the flow described). Because of this, the translation key resolves to flag_reasons. (with no suffix), which returns the entire YAML section instead of a single entry. That’s why there is a Ruby hash in place of the flag reason.

Relatedly, this likely impacts custom flags as well, since their translations would also be missing.

5 Me gusta

I am sure it does. I mentioned that in May

3 Me gusta