ratio - rational - irrational

« Rails 1.1のIntegration Test | Main | 円滑な対話の為の心掛け »

2006年05月31日

Active Recordが不適当なキャッシュを返す(?)問題

ActiveRecordが誤ってキャッシュか何かを返している感じ。これで数時間嵌まった。

新規レコードをsave後、find_by_id(nil)すると、初回の呼び出しに限りsaveしたオブジェクトがマッチする。これは、仕様、じゃないよね。DB-Transactionとかも関係なさそうだし。誰かが報告済みかどうかは調べてないのであとで調べる。

$ pwd
/home/yugui/dev/rails/simple-crud

$ script/about
About your application's environment
Ruby version                 1.8.4 (i386-linux)
RubyGems version             0.8.11
Rails version                1.1.2
Active Record version        1.14.2
Action Pack version          1.12.1
Action Web Service version   1.1.2
Action Mailer version        1.2.1
Active Support version       1.3.1
Application root             /home/yugui/dev/rails/simple-crud
Environment                  development
Database adapter             mysql
Database schema version      1

$cat db/migrate/001-user-migration.rb
class UserMigration < ActiveRecord::Migration
  def self.up
    create_table(:users) {|table|
      table.column :name, :string, :length => 32
    }
  end

  def self.down
    drop_table :users
  end
end

$ script/console
Loading development environment.
>> User.create :name => 'example'
=> #<User:0x40bef1b4 @attributes={"name"=>"example", "id"=>2}, @new_record=false, \
 @errors=#<ActiveRecord::Errors:0x40b730c8 @base=#<User:0x40bef1b4 ...>, @errors={}>>
>> User.find_by_id(nil)
=> #<User:0x40b69c80 @attributes={"name"=>"example", "id"=>"2"}>
>> User.find_by_id(nil)
=> nil
>> User.find_by_id(nil)
=> nil
>>


トラックバック

この記事のトラックバックpingのURL:
http://idm.s9.xrea.com/blog/mt-tb.cgi/442

Ping元:MySQLが不適当なレコードを返す問題。

概要:
Active Recordから変なレコードが返ってくるのは、Active Re...
Weblog:
ratio - rational - irrational
日時:
2006年06月02日 18:30

コメント

新しくコメントをつける

よくわからない理由により、コメントが即座には反映されないかもしれませんか゛、ボタンを押して元の画面に戻ってきたならたぶん正しく送信されています。




blog操作

検索


カテゴリー

このブログについて

あわせて読みたい

follow yugui at http://twitter.com
© 2006 Yugui

Powered by Movable Type 3.2-ja-2