ruby-on-rails - Postgres 还是 database_cleaner?

标签 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'

最佳答案

我在运行 asset pipeline 和 tiny_mce 时遇到了类似的问题

rake assets:precompile

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

关于ruby-on-rails - Postgres 还是 database_cleaner?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7347210/

相关文章:

带前导零的 ruby​​ Date.month

ruby-on-rails - Rails 控制台选项卡完成速度慢?

ruby-on-rails - 如何使用 Ruby on Rails 简化软删除过程?

postgresql - 可以在没有主键的情况下创建外键吗?

django - 如何使用相同的 DATABASE_HOST 从 dockerized django 和非 dockerized django 将 django 应用程序连接到 dockerized postgres 数据库

ruby-on-rails - Nginx,Passenger,Ruby on Rails 4.1.6 Ubuntu 14 - 403 禁止错误

ruby-on-rails - 为什么 Chronic 错误地解析了四个字母的月份?

ruby-on-rails - ActionController 回调过滤器链是否一致?

sql - Rails/Ransack : eq_all array of ids

ruby-on-rails - Ruby on Rails+PostgreSQL : usage of custom sequences