2011-12-30 8 views
2

モデルの関係が別のモデルで使用されていることを確認して、そのモデルが破壊されて孤立してしまうのを防ぐにはどうすればよいでしょうか。Railsが従属する破壊に属している

例:私はTicketとTicketStatusモデルを持っています。 TicketStatusはTicketに属します。チケットhas_many TicketStatuses。

TicketStatusがすでにチケットに割り当てられている場合は、削除できません。私もエラーメッセージが欲しいです。

答えて

3

最も簡単な方法コールバック:

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 

これを防ぎ、あなたにエラーが発生します。

希望すると便利です。

+0

この回答は受け入れられましたか?それとも良い方法がありますか? –

+0

これは良い解決策です、OPはまだそれを受け入れる必要があります! – andrewpthorp

関連する問題