3
我正在写一个代码来处理读取/未读消息,用一个简单的user_id/message_id mysql表来处理读取/未读状态。rails/mysql - 我如何静音ActiveRecord :: StatementInvalid错误?
当用户查看邮件,我执行
Reading.create(:user_id => uid, :message_id => mid)
有唯一索引USER_ID/MESSAGE_ID字段的组合,所以在阅读的条目已经存在,我得到重复条目的ActiveRecord :: StatementInvalid错误。
现在我可以添加
unless Reading.exists?(:user_id => uid, :message_id => mid)
Reading.create(:user_id => uid, :message_id => mid)
end
,但我想这增添了一分SELECT查询INSERT
前我宁愿只有一个INSERT,并且没有错误报告,即使失败(我猜测REPLACE会是最好的,但afaik在ActiveRecord中不可用)。