我有一个优惠券架构,如下所示:
create_table "coupons", force: :cascade do |t|
t.string "discount_code", null: false
t.text "description"
t.integer "amount", default: 0, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
t.boolean "used", default: false, null: false
t.index ["user_id"], name: "index_coupons_on_user_id"
end
我有两个问题。我怎能不允许:
used
设置为true的优惠券再次使用?used
从false更改为true? 答案 0 :(得分:1)
我只想在条件中添加一个分支:
if (current_user.id == @coupon.user_id) && !@coupon.used
<valid coupon redeem logic>
elsif @coupon.used
<return coupon used message>
else
<coupon invalid logic>
end