gpt4 book ai didi

ruby-on-rails - 如果没有关联,RoR 允许删除

转载 作者:太空宇宙 更新时间:2023-11-03 18:10:09 25 4
gpt4 key购买 nike

有没有办法只允许删除没有关联的记录?

例如,我们可以有roomsevents。由于某些原因,不应再使用 RoomX 并且可以将其删除。

任务:用户不能删除@room,直到验证:@room 没有事件

房间.rb:

class Room < ActiveRecord::Base
has_many :events
def to_s
name
end
end

事件.rb:

class Event < ActiveRecord::Base
belongs_to :room
end

你有什么想法/解决方案吗?

最佳答案

您可以使用before_destroy 验证并检查是否没有关联仍然存在

class Room < ActiveRecord::Base

before_destroy :check_for_associations

def events?
events.any?
end

private

def check_for_associations
if events?
errors[:base] << "cannot delete : events are still planned"
false
end
end
end

关于ruby-on-rails - 如果没有关联,RoR 允许删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35912957/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com