« アイススケート | トップページ | この道はいつか来た道 »

ルビーにてんてこ舞い

Mn_726サイドバーにあるリンクがいくつか機能していなかったのを、ようやく直した。原因は、大きく2つ。1つは、リンク先のアプリケーションが置いてあるサーバーが、利用者の知らないうちにアップデートされ、既存のものが動かなくなっていた事。もう一つは、アプリケーションの作成に使われているRuby On Railsがバージョンアップして、これまた既存のコードが動かなくなった事。

例えてみれば、いつの間にか、道路が新しくなっていて、持っている車では、そこを走れなくなったようなもの。「走れるように車を直すのは、自分でやってね」と。

と、愚痴だけ並べた投稿では、世の役には立たないと思うので、建設的な情報も付け加えたい。と言うわけで、以下は、技術的な情報。Ruby On Railsのバージョンアップに伴って、既存のソースコードに変更を加えた部分です。

  • form_end_tagが利用できなくなった。かわりにendを用いる。
    以前の記述:
    <%= form_tag ...省略... %>
    ...省略...
    <%= form_end_tag %>

    新しい記述:
    <% form_tag ...省略... do %>
    ...省略...
    <% end %>

    イコール(=)が不要になっている点に注意

  • render_actionが利用できなくなった。本来のコマンドを使って、render :action => "アクション名"とする。

  • 検索結果をページ毎に表示する機能、paginateが利用できなくなった。この変更は影響が大きかった。なぜなら、とても利用する機能だから。Ruby
    On Railsの標準機能ではなくなり、プラグインを利用しなければならない。今回、利用させてもらったのは、will_paginateというもの。

    1. 開発中のrailsアプリケーションのあるルートディレクトリで、will_paginateをインストール。vendorという フォルダーにインストールされる。
      prompt%> ruby script/plugin install http://tools.assembla.com/svn/breakout/breakout/vendor/plugins/will_paginate/
      URLの後半部分は…/breakout/vendor/plugins/will_paginate/です。隠れて見えなかった場合の参考までに

    2. コントローラーに記述されている以前の paginateの部分を変更。 参考までに、変更例を以下にあげます。

      以前の記述 :
      @album_pages, @albums = paginate(:albums, :per_page => 8)

      新しい記述 :
      @albums = Album.paginate :page => params[:page], :per_page => 8

      ここで、Albumはサンプルのモデルクラス。各アプリケーションで利用するモデルクラスに置き換えてください。各モデルクラスで利用可能なfindメソッドと似た使い方ができるようです。

    3. 次にビューの変更。上記コントローラーでの変更例を元にすると、
      <%= will_paginate @albums %>

      と、なるようだ。その結果、
      « Previous 1 2 3 4 Next »

      日本語にしたい場合は、
      <%= will_paginate @pages, @prev_label="前", @next_label="次" %>



    ビューの記述は、以前より楽になったが、このように動いていたコードを変更しなければならないのは、困りものだ。

  • params,flash,headers等が、インスタンス変数ではなくなった。@params、@flash、@headersと記述していたが、頭に@マークをつける必要が無くなった。

  • RoR 2.0になって、「ファイルのアップロード方法が以前の方法でできなくなった。」という記述をウェブ上で見かけた。今回の作業中、アップロードが確かにできなくなっていたが、私のケースの場合、サーバーに問題があっただけで、RoRのコードには何も変更をする必要は無かった。

  • TORITORI

    |

    « アイススケート | トップページ | この道はいつか来た道 »

    コメント

    コメントを書く



    (ウェブ上には掲載しません)




    トラックバック

    この記事のトラックバックURL:
    http://app.cocolog-nifty.com/t/trackback/58803/40479273

    この記事へのトラックバック一覧です: ルビーにてんてこ舞い:

    « アイススケート | トップページ | この道はいつか来た道 »