4. 詳細表示機能

次に、サーバのデータを詳細表示する機能を開発します。

http://{IPアドレス}:3000/rosters/{データのID}.jsonのURLにGETアクセスを行うと、データのIDに対応するデータがJSON形式で取得できるものとします。

 a.    コントローラの修正

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

 

18 |  # GET /RosterServer/{1}

19 |  def show

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

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

22 |    http = Rho::AsyncHttp.get(:url =>

        "#{SERVER_ADDRESS}/rosters/#{id}.json")

23 |    @rosterserver = RosterServer.new(http["body"]) if http["body"]

24 |    if @rosterserver

25 |      render :action => :show, :back => url_for(:action => :index)

26 |    else

27 |      redirect :action => :index

28 |    end

29 |  end

 

image020.jpg

 

上記の変更内容を説明します。

 

まず、20行目のローカルのデータベースからデータを取得する処理をコメントアウトしています。

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

そして、22行目で、Rho::AsyncHttp.getメソッドを使用して、GETアクセスをしています。

23行目で、データが取得できていれば、取得したデータを使用してRosterServerオブジェクトを作成して、インスタンス変数@rosterserverに代入しています。

 b.    ビューの修正

次に画面の編集を行います。Roster/app/RosterServer/show.erbファイルを以下のように変更して下さい。

 

8 |    <!--<a href="<%= url_for :action => :edit, :id => @rosterserver.object %>"

      class="ui-btn-right" data-icon="star">-->

9 |    <a href="<%= url_for :action => :edit, :id => @rosterserver.id %>"

      class="ui-btn-right" data-icon="star">

 

image022.jpg


 

上記の変更ですが、今回も、@rosterserver.objectをURLのパラメータに設定しているところを、@rosterserver.idに変更して、サーバから取得したデータのIDをパラメータに設定しています。

 

詳細画面の変更は以上になります。

 

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

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