モデルの関係が別のモデルで使用されていることを確認して、そのモデルが破壊されて孤立してしまうのを防ぐにはどうすればよいでしょうか。Railsが従属する破壊に属している
例:私はTicketとTicketStatusモデルを持っています。 TicketStatusはTicketに属します。チケットhas_many TicketStatuses。
TicketStatusがすでにチケットに割り当てられている場合は、削除できません。私もエラーメッセージが欲しいです。
モデルの関係が別のモデルで使用されていることを確認して、そのモデルが破壊されて孤立してしまうのを防ぐにはどうすればよいでしょうか。Railsが従属する破壊に属している
例:私はTicketとTicketStatusモデルを持っています。 TicketStatusはTicketに属します。チケットhas_many TicketStatuses。
TicketStatusがすでにチケットに割り当てられている場合は、削除できません。私もエラーメッセージが欲しいです。
最も簡単な方法コールバック:
class TicketStatus < ActiveRecord::Base
belongs_to :ticket
before_destroy :check_ticket
private
def check_ticket
if ticket != nil
errors.add_to_base("cannot delete ticket status that has a ticket")
return false
end
end
end
これを防ぎ、あなたにエラーが発生します。
希望すると便利です。
before_destroy
callbackを使用し、差し迫った削除をキャンセルするreturn false
を必ず確認してください。
この回答は受け入れられましたか?それとも良い方法がありますか? –
これは良い解決策です、OPはまだそれを受け入れる必要があります! – andrewpthorp