Postgres或database_cleaner?

时间:2011-09-08 11:17:30

标签: ruby-on-rails ruby postgresql tinymce

我遇到了一个非常奇怪的案子。我有这种情况,有时它会通过。有时却没有。事实上,每一步都是绿色的,但是在这一步之后,它产生了这个垃圾堆栈跟踪,它没有告诉我任何有关我的应用程序的信息。

我在这里做的并不复杂,只是想用TinyMCE创建一个该死的评论。我还有20个其他场景,其中一些场景要复杂得多。

可能有助于说明我的环境,尽管从堆栈跟踪中可以看出这一点:

Rails 3.1,ruby 1.9.2,最新的“稳定”版本的一切。 Postgres 9.0.4。

有人比我更聪明解释为什么我会遇到这个问题吗?

Feature: Payment object comments
  In order to explain a action I performed on a payment object
  As a user
  I want to make a comment

  @wip @javascript
  Scenario: Creating a comment                         # features/payment_objects/comments.feature:8
[paperclip] Saving attachments.
[paperclip] Saving attachments.
[paperclip] Saving attachments.
    Given I am in a company                            # features/step_definitions/application_steps.rb:1
    And I have created 1 cash requisitions             # features/step_definitions/payment_steps.rb:5
    When I am on the requisitions page                 # features/step_definitions/web_steps.rb:44
    And I click on the 1st requisition                 # features/step_definitions/payment_steps.rb:39
    When I open the Comments tab                       # features/step_definitions/payment_steps.rb:101
http://127.0.0.1:51796/assets/tinymce/plugins/spellchecker/editor_plugin.js?3.4.5:1 Error: Sprockets::EncodingError: /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/tinymce-rails-3.4.5/assets/precompiled/tinymce/plugins/spellchecker/editor_plugin.js has a invalid UTF-8 byte sequence
    When I fill in "comment_content" with "Testing123" # features/step_definitions/web_steps.rb:64
    And I click on "Comment"                           # features/step_definitions/web_steps.rb:52
    Then there should be a comment saying "Testing123" # features/step_definitions/payment_steps.rb:106
http://127.0.0.1:51796/assets/tinymce/plugins/spellchecker/editor_plugin.js?3.4.5:1 Error: Sprockets::EncodingError: /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/tinymce-rails-3.4.5/assets/precompiled/tinymce/plugins/spellchecker/editor_plugin.js has a invalid UTF-8 byte sequence
      NoMethodError: undefined method `nfields' for nil:NilClass:           SELECT tablename
                FROM pg_tables
                WHERE schemaname = ANY (current_schemas(false))
       (ActiveRecord::StatementInvalid)
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.0/lib/active_support/whiny_nil.rb:48:in `method_missing'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0/lib/active_record/connection_adapters/postgresql_adapter.rb:490:in `result_as_array'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0/lib/active_record/connection_adapters/postgresql_adapter.rb:533:in `block in query'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract_adapter.rb:244:in `block in log'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.0/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract_adapter.rb:239:in `log'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0/lib/active_record/connection_adapters/postgresql_adapter.rb:532:in `query'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0/lib/active_record/connection_adapters/postgresql_adapter.rb:666:in `tables'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/activerecord-3.1.0/lib/active_record/connection_adapters/postgresql_adapter.rb:455:in `disable_referential_integrity'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/active_record/truncation.rb:113:in `each_table'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/active_record/truncation.rb:106:in `clean'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/base.rb:77:in `clean'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/configuration.rb:56:in `block in clean'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/configuration.rb:56:in `each'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/database_cleaner-0.6.7/lib/database_cleaner/configuration.rb:56:in `clean'
      /Users/pma/.rvm/gems/ruby-1.9.2-p290/gems/cucumber-rails-1.0.2/lib/cucumber/rails/hooks/database_cleaner.rb:9:in `After'

1 个答案:

答案 0 :(得分:1)

当我运行

时,我收到了资产管道和tiny_mce的类似问题
rake assets:precompile

...我尝试用iconv等转换文件editor_plugin_src.js和editor_plugin.js,但最终只是暂时删除它们,一切正常。我打算“正确修理”,但如果你不需要拼写检查,你可能不需要这些文件...