这是设置:
我有一个有很多帐户的系统,每个帐户都有很多用户。系统超级用户可以向所有帐户广播消息。消息表示帐户和消息之间的连接。
消息 after_create 将为系统中的每个帐户生成一个消息。消息 after_create 将通过电子邮件将消息传递给该帐户的每个用户。该电子邮件将包含一个链接,例如“单击此处阅读完整消息:http ://example.com/messages/123 ”
Rails 似乎在内存中执行整个操作,然后在最后一步提交到数据库。大致:
Message
after_create
create_messagings
...
Messaging
after_create
send_email
"click here! example.com/messages/123"
...
commit to database
最终发生的情况是,电子邮件开始与消息的 URL 一起传递,但在传递最后一条消息之前,该 URL 尚不存在于数据库中。
我不能成为第一个反对这个的人……有什么想法吗?
目前,这个应用程序正在使用 Rails 3.0,如果这有所作为的话。