Rails:时间锁定记录更新

棉眼乔

我想定时锁定特定记录上的更新。我使用的是acts_as_votable宝石,并且只允许每3或5分钟进行一次投票。

updated_at每当通过更新更新记录时,该列都会获得新的时间戳记。

我试图通过验证(或更好的方法before_save)和模型中的以下代码片段来实现此目的

errors.add(:base, "Try again later.") if self.updated_at < (DateTime.now - 5.minutes)

但这实际上是行不通的。你们有什么主意吗?

提前致谢!

斯拉万

您好,请采用自定义方法进行验证,并使用field_name_was方法从db获取先前的值

在我们将要编写的验证中调用方法。

validate :updated_at_validation

def updated_at_validation 
 old_date = self.updated_at_was 
 if old_date > (DateTime.now - 5.minutes) 
  errors.add(:updated_at, "can't be changed in less than 5 minutes") 
 end 
end

在您的控制器中

def vote 
 if @feature_request.update_attributes(:updated_at => DateTime.now) 
  @feature_request.vote_by voter: current_user, :duplicate => true 
  redirect_to :back 
 else 
  redirect_to feature_requests_url, alert: 'cant be changed in less than 5 minutes' 
 end 
end

就是这样,您的自定义验证已设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails 4不更新记录

来自分类Dev

用rails更新记录4

来自分类Dev

PDO SQLite无法更新记录:“数据库已锁定”

来自分类Dev

根据时间更新属性-Rails

来自分类Dev

MSSQL XML长时间更新查询,无需锁定

来自分类Dev

Rails营业时间查询活动记录

来自分类Dev

根据MySQL中的先前记录更新时间

来自分类Dev

使用Rails中的按钮更新记录?

来自分类Dev

Rails创建新记录而不是更新

来自分类Dev

Rails:对许多记录执行更新的更快方法

来自分类Dev

Rails-使用就地最佳更新记录

来自分类Dev

清除在rails中更新的记录的缓存

来自分类Dev

Rails:对许多记录执行更新的更快方法

来自分类Dev

Rails依赖于相关记录的更新

来自分类Dev

Rails first_or_initialize不更新记录

来自分类Dev

在Rails中定期更新模型(时间间隔)

来自分类Dev

要获取表的更新时间,Ruby on Rails

来自分类Dev

Rails-无法更新日期时间

来自分类Dev

在使用Devise gem的Rails中,如何记录失败的登录和锁定?

来自分类Dev

Rails:活动记录保存时间:键入不想要的格式

来自分类Dev

如何限制用户可以在Rails中编辑记录的时间?

来自分类Dev

Route 53 A记录更新需要多长时间?

来自分类Dev

如何根据状态或最近更新的时间戳获取记录?

来自分类Dev

根据更新的时间和严重性获取记录

来自分类Dev

记录更改时更新表时间戳字段

来自分类Dev

尝试从php pear用时间戳更新Oracle记录

来自分类Dev

.net linq更新datetime的多个记录的时间部分

来自分类Dev

ElasticSearch 5,记录了生存,创建和更新的时间

来自分类Dev

Rails-创建记录或更新记录(如果记录存在)的最有效方法是什么?

Related 相关文章

热门标签

归档