Rails自定义Coupon-System

时间:2016-11-07 23:12:55

标签: ruby-on-rails-4

我为朋友创建一个简单的电子商务,我想实现一个优惠券系统。我希望优惠券成为一个新模型和管理员,以便能够从管理面板创建一个新的优惠券,就像一个简单的脚手架。

我的模特现在就是这个。

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等

谢谢。

1 个答案:

答案 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,则显然他们输入了未创建的优惠券。