2013年12月13日金曜日

rails3でのdependentでrestrictを設定した場合の対処法

モデルでのdependentをrestrict にした場合の

消去出来なかった場合のエラー対処方法

 

Model

class ShareType < ActiveRecord::Base
  has_many :shares, :dependent => :restrict
end

Controller

class ShareTypesController < ApplicationController
  def destroy
    begin
      @share_type.destroy
      flash[:success] = "successfully destroyed." 
    rescue ActiveRecord::DeleteRestrictionError => e
      @share_type.errors.add(:base, e)
      flash[:error] = "#{e}"
    ensure
      redirect_to share_types_url
    end
  end
end 
 
 
元ネタはこちらから
http://apidock.com/rails/ActiveRecord/DeleteRestrictionError 

0 件のコメント:

コメントを投稿