我已經設置了以下型號的聯繫人目錄RSpec的測試與Citier寶石失敗 - 類表繼承
class Contact < ActiveRecord::Base
acts_as_citier
end
class Company < Contact
acts_as_citier
end
class Operator < Company
acts_as_citier
end
的事情是,聯繫人可以是一個公司和運營商是一種公司與加不同的屬性。
由於單表繼承wasnt這個特定應用程序的工作,我決定使用citier寶石。
最後,我有三個表格爲每個模型。因此,當我添加一個公司對象時,我得到兩個條目,即一個聯繫人只有名稱attribuet和公司表中的其他屬性在兩個表中共享同一個id,並將兩個表的類型字段設置爲公司。如果我添加一個運算符,則會創建三個條目,即每個表中的一個與前兩個設置爲運算符的表的類型字段共享相同的ID。
我的應用程序工作正常明顯,但是我所有的測試都破即關於這些車型的 - 再加上糟糕的是,堆棧級別太深,因爲我得到以下錯誤消息全部碎裂測試。
Failure/Error: Unable to find matching line from backtrace
SystemStackError:
stack level too deep
# /home/ali/.rvm/gems/ruby-1.9.2-p318/bundler/gems/rails_sql_views-0cf1af369a5f/lib/rails_sql_views/connection_adapters/abstract_adapter.rb:23
我做了rails_sql_views/connection_adapters/abstract_adapter.rb
文件的檢查ATLEAST在上述錯誤的行號,它只是有這樣一行:
self.class.send(:alias_method, :tables, :original_tables_method)
我使用的是PostgreSQL數據庫在這裏。大約300個測試都具有相同的消息:(
注意:所有失敗的測試是那些涉及任何樣的變化這些模型的破
那。