12.削除機能

削除機能の修正を行います。

現状scaffoldで作成された機能では、http://localhost:3000/rosters/{ID}DELETEアクセスを行うと、RosterServer/app/controllers/rosters_controller.rbファイルのdestroyメソッドが呼ばれます。このアクションが削除機能になります。

 a. コントローラの修正

それでは編集を行います。RosterServer/app/controllers/rosters_controller.rbを開いてください。

113行目のdestroyメソッドを以下のように変更してください。

 

113 |      def destroy

114 |        @roster = Roster.find(params[:id])

115 |        @roster.destroy

116 |   

117 |        respond_to do |format|

118 |          format.html { redirect_to rosters_url }

119 |          format.json {render :json => "OK"}

120 |    #      format.json { head :ok } 

121 |        end

122 |      end

 

image082.jpg


 

上記の機能の説明をします。

114行目では送られてきた:idパラメータに一致するIDRosterテーブルのレコードを取得して、インスタンス変数@rosterに代入しています。

115行目で@rosterのレコードを削除しています。

117行目のrespond_toメソッドで、アクセスの拡張子に合わせて処理を切り分けています。

118行目では、HTML形式のアクセスがあった場合の処理です。削除後に画面のリダイレクトをしています。

119行目では、JSON形式のアクセスがあった場合の処理です。JSON形式で”OK”を返しています。

 

 
システム工房エムのサイトへのリンク

住所〒690-0017 島根県松江市西津田3-2-3 TEL.0852-23-8590 FAX.0852-23-8591
Copyright 2008-2010 System Maker M,All right reserved