トップ «前の日記(2010-05-27) 最新 次の日記(2012-01-01)» 編集

活動日誌


2010-08-30

Padrino 0.9.15 と ActiveRecord 3.0.0 を組み合わせたときに発生する migration の add_index のエラーを修正する

Padrino 0.9.15 と ActiveRecord 3.0.0 の組み合わせで、migration の add_index でエラーが発生しました。

% padrino rake ar:migrate:reset
...(略)
undefined method `key?' for nil:NilClass
/usr/local/lib/ruby/gems/1.8/gems/padrino-core-0.9.15/lib/padrino-core/cli/rake.rb:9:in `init'
(See full trace by running task with --trace)

調べてみると、add_index の第3引数を書かないと padrino は options に nil を渡すのですが、ActiveRecord 側で nil を渡されると動かないようになっていました。 ひとまず、以下のコードを lib/ar_add_index_fix.rb に置いて対処しました。

module ActiveRecord::ConnectionAdapters::SchemaStatements
  alias orig_add_index add_index
  def add_index(table_name, column_name, options = {})
    orig_add_index(table_name, column_name, options || {})
  end
end

2005|02|03|04|05|06|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|03|04|05|06|10|
2008|04|10|
2009|10|
2010|05|08|
2012|01|02|03|
2014|01|
2022|05|
トップ «前の日記(2010-05-27) 最新 次の日記(2012-01-01)»