小编Rai*_*ana的帖子

Rails:"head:ok"解释为"ajax:error"

可能重复:
jquery不会在$ .ajax上调用rails标准REST DELETE应答的成功方法

我响应远程链接(data-remote ="true"data-type ="json")和输出

format.json { head :ok }
Run Code Online (Sandbox Code Playgroud)

在我的Rails(3.2.6)控制器中,它创建了这个头:

Status Code:200 OK
Run Code Online (Sandbox Code Playgroud)
...
Connection:keep-alive
Content-Length:1
Content-Type:application/json; charset=utf-8
Server:thin 1.4.1 codename Chromeo
Set-Cookie: ... path=/; HttpOnly
X-UA-Compatible:IE=Edge
...
Run Code Online (Sandbox Code Playgroud)

在我的JavaScript文件中,ajax:complete被触发并输出200 (data.status).

  $( '#myElement' ).on( 'ajax:complete', function( e, data ) {
    console.log( data.status );
  });
Run Code Online (Sandbox Code Playgroud)

数据看起来像这样:

 ...
 readyState: 4
 responseText: " "
 setRequestHeader: function ( name, value ) {...
 state: function () {...
 status: 200
 statusCode: function ( map ) {...
 statusText: …
Run Code Online (Sandbox Code Playgroud)

jquery ruby-on-rails-3

28
推荐指数
1
解决办法
2万
查看次数

PG :: TRDeadlockDetected:ERROR:检测到死锁

我通过bundle exec pumactl -F config/puma.rb phased-restart什么工作正常重启8个美洲狮工人.现在我收到越来越多的postgres错误:

PG::TRDeadlockDetected: ERROR:  deadlock detected
Run Code Online (Sandbox Code Playgroud)

我发现大约有50个闲置的postgres进程在运行:

postgres: myapp myapp_production 127.0.0.1(59950) idle
postgres: myapp myapp_production 127.0.0.1(60141) idle
...
Run Code Online (Sandbox Code Playgroud)

当我跑步时,它们消失了bundle exec pumactl -F config/puma.rb stop.启动应用程序后bundle exec pumactl -F config/puma.rb start,我得到了16个空闲进程.(在我看来,太多了.)

如何更好地管理这些流程?谢谢你的帮助!


更新

我的puma.rb:

environment 'production'
daemonize true

pidfile 'tmp/pids/puma.pid'
state_path 'tmp/pids/puma.state'

threads 0, 1
bind 'tcp://0.0.0.0:3010'

workers 8

quiet
Run Code Online (Sandbox Code Playgroud)

ruby postgresql ruby-on-rails idle-processing puma

19
推荐指数
1
解决办法
9694
查看次数

sum(&:x)不再工作了

payments.sum(&:price)在我的Rails应用程序(4.1.2)中使用.自从我从Ruby 1.9.3更新到2.1.2后,我收到了以下错误:

wrong number of arguments (1 for 2..3)
Run Code Online (Sandbox Code Playgroud)

这些变体有效:

payments.map(&:price).sum
payments.to_a.sum(&:price)
Run Code Online (Sandbox Code Playgroud)

我是否必须重写我的代码或者我错过了什么?谢谢!

ruby sum ruby-on-rails-4

16
推荐指数
2
解决办法
3254
查看次数

Nginx:获取 proxy_pass 使用的上游 URI

我正在使用proxy_pass并希望记录 proxy_pass 使用的 URI。

我可以记录$upstream_addr除 URI 本身之外的每个详细信息,例如进程的 (IP)。

我错过了什么还是这是不可能的?

logging nginx proxypass nginx-reverse-proxy

10
推荐指数
1
解决办法
6477
查看次数

覆盖rails transper helper

我想要I18n.translate()I18n.t()使用特定的语言环境,但不是I18n.locale.我不想I18n.t(:my_key, locale: :my_locale)每次都使用,所以如果我可以覆盖函数本身就会很棒.

我试着把它放在一个新的帮手中:

# my_helper.rb
module MyHelper
  def translate(key, options = {})
    options[:locale] = MY_LOCALE
    I18n.translate key, options
  end
  alias :t :translate
end
Run Code Online (Sandbox Code Playgroud)

这适用于"硬键" t('word'),但没有找到"动态键"的正确路径t('.title'),这应该使用我的部分路径,即de.users.form.title.

谢谢你的帮助!

locale overriding ruby-on-rails rails-i18n ruby-on-rails-4

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

Rails:friendly_id&globalize不检查转换表是否存在冲突

我在我的Rails 3.2.14应用程序中使用了friendly_id(4.10.1)globalize(3.0.0):

# globalize3
translates :title, :slug

# friendly_id    
extend FriendlyId
friendly_id :title, use: [:slugged, :globalize]
Run Code Online (Sandbox Code Playgroud)

当我保存输入时,friendly_id检查slug碰撞:

SELECT "pages".* FROM "pages" WHERE
("slug" = 'my-title' OR "slug" LIKE 'my-title--%') AND (id <> 1)
ORDER BY LENGTH("slug") DESC, "slug" DESC LIMIT 1
Run Code Online (Sandbox Code Playgroud)

Friendly_id应该使用转换表page_translations,因为pages当您使用多个语言环境时,原始表中的条目有点随机.

这就是问题所在:friendly_id只识别一种语言/语言环境的slug冲突.

有没有人知道如何更改完整全球化支持的查询?非常感谢你提前!

friendly-id ruby-on-rails-3 globalize3

5
推荐指数
0
解决办法
728
查看次数

预构建片段缓存(内部方法)

我想预先构建一个需要几秒钟渲染的局部.我见过使用代理通过http预加载缓存的函数,但我希望有一个"内部"解决方案.

这是我的函数,每当myobject更新时都会调用它:

def pre_build_partial myobject
  the_controller = ActionController::Base.new
  the_controller.instance_variable_set '@myobject', myobject

  view_renderer = ActionView::Renderer.new the_controller.lookup_context
  view_renderer.render the_controller.view_context, { partial: 'mypartial', layout: false }
end
Run Code Online (Sandbox Code Playgroud)

它适用于使用基本帮助程序的部分,但我的自定义助手会抛出错误:

undefined method `my_custom_helper_function' for #<#<Class:...>

我想帮助者必须加入the_controller,但我找不到办法.在此先感谢您的帮助!

ruby-on-rails fragment-caching helpers prebuild

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