Rails 3 问题 - 在特定时间锁定行
我正在构建一个 Rails 3 应用程序,其中销售数量有限的商品。我正在寻找一种方法来将商品保留特定的时间,以便当有人选择商品时,他们有时间在其他人之前购买它。我已经做了一些关于行锁定的研究,但到目前为止还没有找到可用的方法来指定时间。
感谢您的任何帮助或想法
I'm building a rails 3 app in which it sells a limited number of items. I'm looking for a way to hold an item for a specific amount of time so that when someone selects an item, they have time to purchase it before someone else can purchase it before them. I have done some research as to row locking but haven't found a usable method thus far for specifying a time.
Thanks for any help or ideas
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是一种典型的工作流模式,您在一段时间内获取一个对象。您可以通过实施应用程序级锁轻松实现这一点。
1) 将锁定字段添加到模型中。
2) 现在您可以在 Product 模型中实现此逻辑。
以下是如何使用它:
This is a typical workflow pattern, where you acquire an object for a duration. You can achieve this easily by implementing application level locks.
1) Add lock fields to the model.
2) Now you can implement this logic in the Product model.
Here is how to use this:
我建议设置一个
locked_until
时间戳,每当有人尝试购买其中一件商品时都会检查该时间戳。如果过去没有任何商品具有locked_until
时间,则所有商品均“售完”。对于商品的实际销售,我将有一个sold
布尔字段。I would recommend setting a
locked_until
timestamp that's checked whenever someone attempts to buy one of these items. If there are no items with alocked_until
time in the past, then all items are "sold out". For actual selling of the items, I would have asold
boolean field.