Rails定制优惠券系统
问题描述:
我为一个朋友创建一个简单的电子商务,我想实现一个优惠券系统。我希望优惠券成为新的模式,管理员可以像管理员一样从管理面板创建新的优惠券。Rails定制优惠券系统
我的模特现在就是这样。
class Order < ActiveRecord::Base
has_many :order_items
class OrderItem < ActiveRecord::Base
belongs_to :product
belongs_to :order
我知道我需要一个协会订单 - > belongs_to的:优惠券和优惠券 - >的has_many:订单或订单 - > HAS_ONE:优惠券和优惠券 - > belongs_to的:订单。我想要任何订单只有一张优惠券。
但我的主要问题是如何创建一个表单,以检查是否存在优惠券。
我知道如何更新total_price等。
谢谢。
答
只需确保name
或优惠券的某些其他属性在Coupon.rb
模型中是唯一的。有关更多信息,请参阅下面的链接。
http://guides.rubyonrails.org/active_record_validations.html#uniqueness
然后你可以索引券由Coupon.name
。这将有两个方面的帮助:1)如果你的管理员试图创建一个带有重复名称或代码的优惠券,他们会得到一个错误消息,说明优惠券退出。 2)当消费者输入优惠券时,您可以通过致电Coupon.find_by_name('NAME')
来检查消费者是否退出,其中NAME
是消费者输入的内容。如果那个返回零,那么显然他们输入了一个没有创建的优惠券。
所以,你建议将Coupon.find_by添加到我的订单控制器。如何在视图上实现这一点? – elgreko
如果你有一个表单来创建优惠券,后台会自动检查表单提交时该名称是否唯一,如果管理员尝试创建副本,则显示错误。你还在问如何在前端创建表单?或前端的唯一性验证? – tomjohn
不,我的问题不是创建优惠券的验证。我一直坚持如何在购物车页面中实现一个表单,以检查提供的代码是否存在并且是有效的,如果存在,则添加订单金额或者如果不存在则抛出错误。 – elgreko