布尔值为true的方法

时间:2017-03-24 14:32:28

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个优惠券架构,如下所示:

 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

我有两个问题。我怎能不允许:

  1. used设置为true的优惠券再次使用?
  2. 一旦完成,将used从false更改为true?

1 个答案:

答案 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