1

create, update and deleteビューに、 というテーブルのレコードに対するHTML テーブルがありますMast_Freq

このテーブルの は、テーブルおよび他のいくつかのテーブルのPrimary key外部キーによって参照されます。そのため、あるレコードを削除しようとすると、次のようなエラー メッセージが表示されました。'MastFreq''AssFreq'MastFreq

ActiveRecord::JDBCError: [Sybase][JDBC Driver][SQL Anywhere]Primary key for row in table 'MastFreq' is referenced by foreign key 'MastFreq' in table 'AssFreq': DELETE FROM "MastFreq" WHERE "MastFreq"."Frequency_Code" = 'A'

このエラー メッセージの代わりにカスタム エラー メッセージをユーザーに表示するにはどうすればよいですか。このレコードは削除しないでください。

Frequency_Codeテーブルの主キーですMastFreq

Controller:
----------
class Asset::MastFreqsController < AssetController

  rescue_from ActiveRecord::JDBCError, :with => :jdbc_error

  def destroy
    begin
      @asset_master_frequency = Asset::MastFreq.find(params[:id])
      result = @asset_master_frequency.destroy

      respond_to do |format|
    format.html{ redirect_to :action => :index}
    format.json{ render :json => result}
      end
    rescue ActiveRecord::JDBCError
    end
  end

  protected
  def jdbc_error(exception)
    flash[:error] = "You Cannot delete this Frequency Code" + exception.inspect
    redirect_to asset_master_frequencies_path
  end
end
4

2 に答える 2

1

あなたはこれを試すことができます

begin
===
your code
==
rescue ActiveRecord::JDBCError
puts "your custom error messages"
end

于 2013-06-12T09:31:41.740 に答える