1

私のビューファイルには

%td= link_to 'Destroy', Fund_subfund_path(@fund, subfund), :method => :delete, :data => { :confirm => 'よろしいですか?' }

私のコントローラーは

def destroy
  @subfund = Subfund.find(params[:id])
  fund_id = @subfund.fund_id
  nickname = @subfund.nickname
  if @loans.empty?
    @subfund.destroy
    respond_to do |format|
      format.html { redirect_to fund_path(fund_id), notice: 'Subfund ' + nickname + ' was destroyed.' }
      format.json { head :no_content }
    end
  else
    respond_to do |format|
      format.html { redirect_to fund_path(fund_id), 
        notice: 'Subfund ' + nickname + " has Loans, so can't be destroyed." }
      format.json { head :no_content }
    end
  end
end

リダイレクトとメッセージは正常に機能します。私の問題は、@loans が空ではなく、@subfund.destroy アクションが実行されていない場合でも、「よろしいですか?」というメッセージが表示されることです。確認がまだ表示されます。

確認メッセージのにこのメソッドをインターセプトするにはどうすればよいですか?

代わりに link_to_if を試してみましたが、それでも「Destroy」が非アクティブなリンクとして表示され、ユーザーを混乱させると思います。

4

1 に答える 1