小编Ale*_*ore的帖子

在生产环境中使用预编译资产时引发的RoutingError

在预编译资产之后,尝试使用资产管道在生产模式下测试部署简单的Rails 3.1应用程序.现在使用JRuby和WEBrick 1.3.1; 计划是在JBoss上部署下一步.

一切都在开发环境中运行良好,但在生产中,当客户端请求任何预编译资产时,它会引发RoutingError.

Rails服务器日志如下所示:

开始获取"/assets/application-a04f15ca8cb6078896dbdc22266757d9.css"for 127.0.0.1 at 2012-02-06 18:19:04 -0500

ActionController :: RoutingError(没有路由匹配[GET]"/assets/application-a04f15ca8cb6078896dbdc22266757d9.css)

预编译资产位于应用程序public/assets目录中.

我应该期望WEBrick能够处理/公共/资产吗?或者我可以只在Apache上部署时测试吗?

任何帮助将不胜感激.

ruby-on-rails ruby-on-rails-3.1

3
推荐指数
1
解决办法
1004
查看次数

如何使用will_paginate避免N + 1个查询?

我的应用程序因N + 1查询而变慢.我正在使用带有Rails 3.1和Oracle 11.2的will_paginate gem.

通常情况下,解决方案是使用ActiveRecord#includes()在我获取父记录的同时读入子记录,但是我所做的每一次尝试似乎都不能使用will_paginate,或者最终获取整个数据库进入内存.我尝试制作一个命名范围,但似乎在调用时立即获取范围,而不是懒惰.

class Parent < ActiveRecord::Base
  has_many :children, :dependent => :delete_all
end

class Child < ActiveRecord::Base
  belongs_to :parent
end

class ParentsController < ApplicationController
def index
  @parents = Parent.paginate page: params[:page], order: 'id', per_page: 32
end
Run Code Online (Sandbox Code Playgroud)

Index.html.erb包含,除其他外,

<%= page_entries_info @parents %>
<%= will_paginate @parents, :container => false %>
<% @parents.each do |parent| %>
<%= parent.call_to_method_that_uses_children_association_causing_N+1_query %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

如果我无法将整个数据库提取到内存中,并且不想获取父页面,然后是N个子提取,除了放弃will_paginate之外还有其他选择吗?

另外,will_paginate还有大量文档吗?github上的信息很稀疏.例如,will_paginate方法的:container选项是什么意思?

ruby-on-rails will-paginate ruby-on-rails-3.1

3
推荐指数
1
解决办法
1601
查看次数

一个爆炸字符在Windows bat文件中意味着什么?

我正在尝试纠正一个使用爆炸字符的蝙蝠文件,我希望在某种形式的引用:类似的东西

set some_var=!some_var:"=\"!
Run Code Online (Sandbox Code Playgroud)

然后是

some command !some_var!
Run Code Online (Sandbox Code Playgroud)

看起来第一个是提示输入时禁用了echo,比如提示输入密码,第二个引用变量.通常,bat文件使用百分比字符,例如

%some_var%
Run Code Online (Sandbox Code Playgroud)

任何人都知道爆炸角色在蝙蝠文件中究竟做了什么?试图调试这个东西,不喜欢猜测.

windows batch-file

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