10.詳細表示機能

詳細表示機能の修正を行います。

現状scaffoldで作成された機能では、http://localhost:3000/rosters/{ID}GETアクセスを行うと、RosterServer/app/controllers/rosters_controller.rbファイルのshowメソッドが呼ばれるようになっています。このアクションが詳細表示機能になります。

 a.    コントローラの修正

それでは、編集作業を行おうと思うのですが、詳細表示機能についても、一覧表示機能と同様に、Railsscaffoldで自動生成された機能のまま、サーバ連携機能がさくせいされています。RosterServer/app/controllers/rosters_controller.rbファイルを開いて、18行目からのshowメソッドを見てください。

 

18 |       def show

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

20 |    

21 |         respond_to do |format|

22 |           format.html # show.html.erb

23 |           format.json { render :json => @roster }

24 |         end

25 |       end

 

 

image078.jpg


 

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

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

21行目のrespond_toメソッドを使用して、showメソッドにアクセスがあったときに、リクエストの拡張子をみて、処理を切り分けています。HTML形式でリクエストしている場合は、format.htmlとなっている22行目の処理を通ります。

JSON形式でリクエストしている場合は、format.jsonとなっている23行目の処理を通るようになります。

23行目では、@rosterの値をJSON形式で返しています。

詳細表示機能については以上です。

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

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