添加条件语句来一个链接

问题描述 投票:0回答:1

我有一个预订量上升,当你预约它会自动保存到“待定主机验证”预订状态。当你接受预订的订单管理变更确认(这是可以正常使用),并拒绝时,它应该将状态更新为已取消。当你点击其中有“取消”它回滚状态的“拒绝”,更新不能正常工作。

这里是我的链接,索引页的代码:

<li><%= link_to "Accept", my_booking_path(booking, booking: {status: "Confirmed"}), method: :patch, class: "btn btn-success" %></li>
<li><%= link_to "Decline", my_booking_path(booking, booking: {status: "Cancelled"}), method: :patch, class: "btn btn-danger" %></li>

而我的模式是:

class Booking < ApplicationRecord
  belongs_to :user
  belongs_to :bed
  has_one :review, dependent: :destroy
  validates :checkin_on, presence: true
  validates :checkout_on, presence: true
  validates :status, inclusion: { in: ["Pending guest request", "Pending host validation", "Confirmed", "Cancelled"], allow_nil: true }
end

在预订控制器我的更新动作:

def update
  set_booking
  @booking.update(set_params)
  redirect_to my_bookings_path
end

而PARAMS是:

def set_params
  params.require(:booking).permit(:status)
end

我如何能够实现这一点,以便它停止回滚?任何帮助或洞察力将不胜感激。谢谢!

ruby-on-rails ruby
1个回答
2
投票

尝试allow_nil列入块外,如:

validates :status, inclusion: { in: ["Pending guest request", "Pending      host validation", "Confirmed", "Cancelled"] }, allow_nil: true 

您还可以使用allow_blank: true列入块外如上所述...

© www.soinside.com 2019 - 2024. All rights reserved.