6.削除機能

最後に削除機能のサーバ連携開発を行います。

http://{IPアドレス}:3000/rosters/{ID}.jsonにDELETEメソッドで接続するとデータが削除されるものとします。

 a.    コントローラの修正(deleteメソッド)

それでは編集を行います。Roster/app/RosterServer/roster_server_controller.rbファイルを開いてください。そして、deleteメソッドを以下のように変更してください。

 

97 |       # POST /RosterServer/{1}/delete

98 |       def delete

99 |#    @rosterserver = RosterServer.find(@params['id'])

100 |#    @rosterserver.destroy if @rosterserver

101 |      id = strip_braces(@params["id"])

102 |        Rho::AsyncHttp.post(

103 |          :url => "#{SERVER_ADDRESS}/rosters/#{id}.json"

104 |          :http_command => "DELETE",

105 |          :callback => url_for(:action => :delete_callback)       

106 |        )

107 |        redirect :action => :index 

108 |      end

 

image032.jpg


99、100行目でローカルのデータベースに対する処理を行っているのでコメントアウトしています。

101行目で、、@params[“id”]の中身が「”{1}”」のようになっているので、「”1”」のように変換して、変数idに代入しています。

102行目で、Rho::AsyncHttp.postメソッドを使用して、サーバへDELETEメソッドで接続をおこなっています。コールバック先に、delete_callbackメソッドを指定しています。

 b.    コントローラの修正(delete_callbackメソッド)

110行目から以下のdelete_callbackメソッドを追加してください。

 

110 |      def delete_callback

111 |        if @params["status"] == "ok" && @params["body"] == "OK"

112 |          msg ="削除しました。"

113 |        else

114 |          msg = "削除に失敗しました。"

115 |        end

116 |        Alert.show_popup(msg)

117 |        WebView.navigate(url_for(:action => :index))

118 |      end

119 |        WebView.navigate(url_for(:action => :index))

120 |      end

 

image034.jpg


上記の処理を説明いたします。

110行目からのdelete_callbackメソッドでは、処理の結果に合わせてポップアップを表示して、一覧表示画面へ遷移させています。

 

 

 

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

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