Rails 2.3.14
プロジェクトをに変換しましたRails 3.2.2
から直接派生しないテーブルに問題がありますActiveRecord::Base
次のように定義されたモデルがあります。
class PauaServiceTable < ActiveRecord::Base
def self.abstract_class?
true
end
..
..
end
このクラスから派生した多くのクラスがあります。例えば:
class Lookup < PauaServiceTable
...
end
Rails では、console (3.3.2)
直接派生する任意のテーブルをインスタンス化できますActiverecord::Base
が、継承するテーブルPauaServiceTable
は次のスタック トレースで失敗します。
Loading development environment (Rails 3.2.2)
ruby-1.8.7-p334 :001 > l=Lookup.new
ActiveRecord::StatementInvalid: Mysql2::Error: Incorrect table name '': SHOW FULL FIELDS FROM ``
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:243:in `query'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:243:in `execute'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `log'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activesupport-3.2.2/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:275:in `log'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:243:in `execute'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/connection_adapters/mysql2_adapter.rb:211:in `execute'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:257:in `execute_and_free'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:424:in `columns'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/connection_adapters/schema_cache.rb:12:in `initialize'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/model_schema.rb:228:in `call'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/model_schema.rb:228:in `default'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/model_schema.rb:228:in `[]'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/model_schema.rb:228:in `columns'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/model_schema.rb:243:in `column_defaults'
from /Users/george/.rvm/gems/ruby-1.8.7-p334@rails322/gems/activerecord-3.2.2/lib/active_record/base.rb:479:in `initialize'
from (irb):1:in `new'
from (irb):1ruby-1.8.7-p334 :002 >
このコードは では正常に機能しましRails 2.3.14
たが、 に変換すると失敗します3.2.2
。