我为朋友创建一个简单的电子商务,我想实现一个优惠券系统。我希望优惠券成为一个新模型和管理员,以便能够从管理面板创建一个新的优惠券,就像一个简单的脚手架。
我的模特现在就是这个。
class Order < ActiveRecord::Base
has_many :order_items
class OrderItem < ActiveRecord::Base
belongs_to :product
belongs_to :order
我知道我需要一个关联订单 - &gt; Belongs_to:优惠券和优惠券 - &gt; has_many:订单或订单 - &gt; has_one:优惠券和优惠券 - &gt; belongs_to:订单。我希望任何订单只有一张优惠券。
但我的主要问题是如何创建表单,以检查是否存在优惠券。
我知道如何更新total_price等
谢谢。
答案 0 :(得分:0)
只需确保优惠券的name
或其他某些属性在Coupon.rb
模型中是唯一的。有关详细信息,请参阅以下链接。
http://guides.rubyonrails.org/active_record_validations.html#uniqueness
然后,您可以按Coupon.name
索引优惠券。这有助于两种方式1)如果您的管理员尝试使用重复的名称或代码创建优惠券,他们将收到错误说明优惠券退出。 2)当消费者输入优惠券时,您只需通过调用Coupon.find_by_name('NAME')
来检查是否退出,其中NAME
是消费者输入的内容。如果返回nil,则显然他们输入了未创建的优惠券。