Rails, before_filter でアクション前のチェックを行う
2010年04月08日
Ruby on Rails でアイテムをデータベースから削除する際に、そのアイテムのデータを利用している関連項目が存在するかを事前にチェックして、不用意に削除してしまわないようにする。
class ItemsController < ApplicationController before_filter :account_has_item?, :only => :destroy # 省略... private def account_has_item? @item = Item.find(params[:id]) @accounts = Account.find(:all, :conditions => { :item_id => params[:id] }) if @accounts.length > 0 flash[:warning] = "費目(#{@item.name})を設定している項目が(#{@accounts.length}個)存在します" redirect_to :action => :index end end end
Railsレシピブック 183の技
posted with amazlet at 10.04.07
高橋 征義 諸橋 恭介
ソフトバンククリエイティブ
売り上げランキング: 90101
ソフトバンククリエイティブ
売り上げランキング: 90101