小编nlh*_*nlh的帖子

Heroku/Unicorn上的重复导轨错误 - '执行过期',一个ActionView :: Template :: Error

我的问题类似于以下内容,但情况略有不同.

Rails:执行在time_zone_select上过期

我的设置是:

  • Rails 3.2.13
  • Unicorn 4.6.2
  • Mongoid 3.0.22
  • 轻便摩托车1.4.2

在Heroku Cedar上运行.MongoDB在MongoLab上托管.

错误分批进行,并且通常由Heroku进程重启来解决.第一个通常是下面的那个:

An ActionView::Template::Error occurred in [controller]#[action]:

 execution expired
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/sockets/connectable.rb:46:in `read'
Run Code Online (Sandbox Code Playgroud)

以下是堆栈跟踪的最高位.如果需要,很乐意添加更多!

vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/sockets/connectable.rb:46:in `read'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/sockets/connectable.rb:46:in `block in read'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/sockets/connectable.rb:118:in `handle_socket_errors'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/sockets/connectable.rb:46:in `read'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:177:in `read_data'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:99:in `block in read'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:202:in `with_connection'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:97:in `read'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/protocol/query.rb:163:in `receive_replies'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:135:in `block in receive_replies'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:134:in `map'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/connection.rb:134:in `receive_replies'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:553:in `block (2 levels) in flush'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:129:in `ensure_connected'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:551:in `block in flush'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:566:in `logging'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:550:in `flush'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:539:in `process'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/node.rb:349:in `query'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/cursor.rb:138:in `block in load_docs'
 vendor/bundle/ruby/1.9.1/gems/moped-1.4.2/lib/moped/session/context.rb:105:in `block in …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku mongoid mlab

11
推荐指数
1
解决办法
1228
查看次数

Spring vs. Zeus性能问题:Spring在第一次运行后没有更快地运行测试?

所以我正在努力改进我的测试执行时间,并且一直在遵循一些优秀的建议(最值得注意的是,Railscasts 412).

Zeus似乎工作得很好(除了需要你输入zeus test test才能运行Minitest套件的奇怪之外.)

这是zeus的定时输出:

基线(佣金测试):

$ time rake test
Run options: --seed 62848

# Running tests:

........

Finished tests in 0.117071s, 68.3346 tests/s, 68.3346 assertions/s.

8 tests, 8 assertions, 0 failures, 0 errors, 0 skips

real    0m5.771s
user    0m4.477s
sys     0m0.872s
Run Code Online (Sandbox Code Playgroud)

和宙斯一起:

$ time zeus test test
Run options: --seed 10325

# Running tests:

........

Finished tests in 0.126365s, 63.3087 tests/s, 63.3087 assertions/s.

8 tests, 8 assertions, 0 failures, 0 errors, 0 skips

real …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails zeus minitest rake-test

6
推荐指数
1
解决办法
2516
查看次数

Mongoid embeds_many/embedded_in与ActiveAdmin中Formtastic的关系...?

哇 - 很多项目都包含在这个中,而且我做了一些(广泛的)搜索无济于事,所以抛出一个耀斑,看看是否有其他人正在使用类似的堆栈并有一个解决方案.

我正在使用支持Mongoid的ActiveAdmin分支为Rails 3应用程序构建管理界面.

到目前为止,ActiveAdmin(使用Formtastic构建其表单)似乎正在发挥作用.但是当我试图将这个堆栈与Mongoid embeds_manyembedded_in关系一起使用时,我遇到了麻烦.我想成为一个好公民,并使用适当的数据建模技术与Mongo,但Formtastic似乎不想发挥.

我将分享我得到的具体错误,尽管它可能是深奥的.

如果我不能挖了一个很好的解决方案,我要把它吸上来,只是用has_manybelongs_to,虽然我知道我会被放弃的MongoDB的主要好处(应用程序将不会大到足以有欠缺连接/多个查询是一个问题,但我认为我从一开始就以正确的方式做事!).

class Location
  include Mongoid::Document
  embeds_many :events
  field :venue_name, type: String
end

class Event
  include Mongoid::Document
  embedded_in :location
  field :event_name, type: String
end

ActiveAdmin.register Event do
  form do |f|
    f.inputs do
      f.input :event_name
      f.input :location, :as => :select
    end
  f.buttons
end
Run Code Online (Sandbox Code Playgroud)

它在线上窒息f.input :location并抛出:

ActionView::Template::Error (undefined method `event_id' for #<Event:0x007fa4224a20e0>):
1: insert_tag renderer_for(:new)
Run Code Online (Sandbox Code Playgroud)

我改变了:as => :select:as => :check_boxes,实际上得到它,以显示正确的位置(虽然为复选框,不选择或收音机).但是在提交表格后,我接受了一个: …

mongodb formtastic mongoid activeadmin mongoid3

5
推荐指数
1
解决办法
666
查看次数

Script Kiddie 尝试触发 Rails URI::InvalidURIError - 如何过滤?

我刚刚在一个长期存在的域上启动了一个生产 Rails 应用程序(在 Heroku 上),当然,现在它面向广泛开放的网络,我正在收集尝试脚本小子的所有碎片。

我有任何异常通过电子邮件发送给我,我已经设法捕获(rescue_from)所有标准错误,但是每天都会出现几次:

An URI::InvalidURIError occurred in #:

bad URI(is not URI?): http://www.myapp.com/assets/,data:n,complete:function(e,t)
{r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u
vendor/ruby-1.9.3/lib/ruby/1.9.1/uri/common.rb:176:in `split'


-------------------------------
Request:
-------------------------------

 * URL       : http://myapp.com/assets/,data:n,complete:function(e,t)
{r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v(
 * IP address: 195.241.58.105
 * Parameters: {"v("=>nil, "path"=>"assets/,data:n,complete:function(e,t){r&&u.each(r,o||
[e.responseText,t,e])}}).done(function(e){o=arguments,u", "format"=>"html(i"}
 * Rails root: /app
 * Timestamp : 2013-02-26 16:53:51 UTC
Run Code Online (Sandbox Code Playgroud)

所以从我未经训练的眼睛来看,这看起来像是脚本小子试图尝试某种漏洞(或?)

我的问题:

1)这是一个我不确定“轨道魔法”能走多远的领域——我需要做些什么吗?我真的不喜欢外部力量仅从请求中就能够在我的应用程序中导致异常。我应该拯救 URI::InvalidURIError 异常并抛出 404 吗?还有什么我应该做的吗?每个人都会出现这种情况吗?

2)是否配置错误,或者这只是应用程序的标准“库存生产”行为?我正在运行 Rails 3.2.12(截至本文发布的最新补丁版本)。

提前感谢您的任何建议!

编辑:添加一些关于请求的更多细节,正如克里斯蒂安在下面指出的那样,可能不是脚本小子?不管怎样,我很好奇。

第二个要求:

An URI::InvalidURIError occurred in #:

bad URI(is not URI?): http://www.myapp.com/assets/&&!yt.test(e)&&
(v.support.htmlSerialize||!wt.test(e))&&
(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt
 vendor/ruby-1.9.3/lib/ruby/1.9.1/uri/common.rb:176:in `split'


-------------------------------
Request:
-------------------------------

 * URL       : …
Run Code Online (Sandbox Code Playgroud)

security ruby-on-rails

5
推荐指数
1
解决办法
722
查看次数

运行rake test w/minitest 5时可能"快速失败"?

是否可以配置'rake test'以在遇到故障/异常时立即停止运行测试?

我的设置:

  • Rails 4.1
  • 最小5.3.4
  • Tapout(用于格式化)

我想启动测试套件并在测试失败时立即停止 - 默认行为是继续运行所有测试,在某些情况下,数据太多(特别是一个小错误导致大量测试突然失败.)

我有一个很好的小设置与旧版Minitest(4.x)和Turn gem遵循这个要点:( 为minitest/turn/minitest-rails添加一个简单的fail-fast选项),但我正在工作在一个新的Rails 4.1应用程序上,Turn与Minitest 5(尚未)兼容.

有什么想法吗?

ruby-on-rails minitest

5
推荐指数
1
解决办法
1824
查看次数