Rails2.0 pagination

So how do I upgrade?

If you want to move your application to Rails 2.0, you should first move it to Rails 1.2.6. That’ll include deprecation warnings for most everything we yanked out in 2.0. So if your application runs fine on 1.2.6 with no deprecation warnings, there’s a good chance that it’ll run straight up on 2.0. Of course, if you’re using, say, pagination, you’ll need to install the classic_pagination plugin. If you’re using Oracle, you’ll need to install the activerecord-oracle-adapter gem. And so on and so forth for all the extractions.

pafination を使うためには、classic_pagination というプラグインを使わないといけないらしい。
それからoracle使うためにはactiverecord-oracle-adapterをインストールするんだってさ。


で、さっそくインストールしてみた。

>jruby script/plugin install classic_pagination
WARNING: unimplemented method called: Store#set_default_paths
+ ./CHANGELOG
+ ./README
+ ./Rakefile
+ ./init.rb
+ ./install.rb
+ ./lib/pagination.rb
+ ./lib/pagination_helper.rb
+ ./test/fixtures/companies.yml
+ ./test/fixtures/company.rb
+ ./test/fixtures/developer.rb
+ ./test/fixtures/developers.yml
+ ./test/fixtures/developers_projects.yml
+ ./test/fixtures/project.rb
+ ./test/fixtures/projects.yml
+ ./test/fixtures/replies.yml
+ ./test/fixtures/reply.rb
+ ./test/fixtures/schema.sql
+ ./test/fixtures/topic.rb
+ ./test/fixtures/topics.yml
+ ./test/helper.rb
+ ./test/pagination_helper_test.rb
+ ./test/pagination_test.rb


Pagination
==========

To install:

  script/plugin install svn://errtheblog.com/svn/plugins/classic_pagination

This code was extracted from Rails trunk after the release 1.2.3.
WARNING: this code is dead. It is unmaintained, untested and full of cruft.

There is a much better pagination plugin called will_paginate.
Install it like this and glance through the README:

  script/plugin install svn://errtheblog.com/svn/plugins/will_paginate

It doesn't have the same API, but is in fact much nicer. You can
have both plugins installed until you change your controller/view code that
handles pagination. Then, simply uninstall classic_pagination.

意訳:

このコードは死んでるし、メンテされないよ。will_paginateっていう
もっといいページネーションのプラグインがあるからインストールしてね。
(classic_paginationと)同じAPIじゃないけど、もっといい感じだよ。
両方インストールできるからコントローラとビューでページネーション
しているコードを変更するまで両方使ってちょ。
変更したらclassic_paginationをアンインストールしてくれ。

ってことで、will_paginateもインストールしましたとさ。

Rails2.0 config.breakpoint_server

      *******************************************************************
      * config.breakpoint_server has been deprecated and has no effect. *
      *******************************************************************

サーバーを起動すると、こんなメッセージが出ていたので、調べてみたら、

Edit config/environments/development.rb and remove the line defining breakpoint_server.

とのことなので、config/environments/development.rb の12行目あたりの

config.breakpoint_server = true

を削除するとでなくなります。

Rails2.0 rakeタスク

Rails 2.0 is finally finished after about a year in the making.

2.0が出たってことで色々試そうと思ってます。まずはざっくりrakeタスクの違いを見てみました。

rake db:abort_if_pending_migrations  # Raises an error if there are pending migrations
rake db:charset                      # Retrieves the charset for the current environment's database
rake db:collation                    # Retrieves the collation for the current environment's database
rake db:create                       # Create the database defined in config/database.yml for the current RAILS_ENV
rake db:create:all                   # Create all the local databases defined in config/database.yml
rake db:drop                         # Drops the database for the current RAILS_ENV
rake db:drop:all                     # Drops all the local databases defined in config/database.yml
rake db:fixtures:identify            # Search for a fixture given a LABEL or ID.
rake db:reset                        # Drops and recreates the database from db/schema.rb for the current environment.
rake db:rollback                     # Rolls the schema back to the previous version. Specify the number of steps with STEP=n
rake db:version                      # Retrieves the current schema version number
rake notes                           # Enumerate all annotations
rake notes:fixme                     # Enumerate all FIXME annotations
rake notes:optimize                  # Enumerate all OPTIMIZE annotations
rake notes:todo                      # Enumerate all TODO annotations
rake routes                          # Print out all defined routes in match order, with names.

おおー、なんか色々追加されてますねー

Rails2.0 マイグレーション

  def self.up
    create_table :events do |t|

      t.timestamps
    end
  end

マイグレーションを生成してみたらこんなになっていた。tmiestampsってだいたい見当はつくけど、一応ActiveRecord::ConnectionAdapters::TableDefinitionを確認。

      def timestamps
        column(:created_at, :datetime)
        column(:updated_at, :datetime)
      end

やっぱりそうだよね。これをt.timestampsを残しておくと、created_atとupdated_atを作ってくれるらしい。