小编cor*_*tex的帖子

如何在Zeus的测试环境中运行Rails控制台?

我想要做的就是运行rails console test与但宙斯的宝石,是这样的:zeus console test

非常感谢提前!

ruby gem ruby-on-rails zeus

14
推荐指数
1
解决办法
3073
查看次数

如何使用mongoid获取最后N个文档?

我在mongoDB中找到了一些完成此功能的信息,但我需要mongoid.所以我可以这样做:

User.last(7000).each do ....

我正在使用:

  • MongoDB shell版本:2.4.3

  • Mongoid 2.6.0

谢谢!

ruby mongodb mongoid

14
推荐指数
1
解决办法
5881
查看次数

最佳实践 - 在Ruby on Rails视图中传递实例变量或使用params?

根据以下示例,最佳做法是什么?

情况1

controller.rb ...

def index
  ...
  @group = params[:group]
  @team = params[:team]
  @org = params[:org]
  ...
end
Run Code Online (Sandbox Code Playgroud)

index.html.haml

= link_to @group, '#'
= link_to @team, '#'
= link_to @org, '#'
Run Code Online (Sandbox Code Playgroud)

案例2

controller.rb ...

def index
  ...

  ...
end
Run Code Online (Sandbox Code Playgroud)

index.html.haml

= link_to params[:group], '#'
= link_to params[:team], '#'
= link_to params[:org], '#'
Run Code Online (Sandbox Code Playgroud)

或者可能还有另一个选项,比如只传递一个Hash类型的实例变量...

谢谢!

ruby ruby-on-rails

12
推荐指数
2
解决办法
9982
查看次数

如果禁用了rails中的text_field_tag表单助手,它是否不提交?

我的表单中有一个text_field_tag,我真的希望它只是用于显示(我的所​​有jquery更新此文本字段),使用日期选择器.虽然我不希望用户在这里输入,所以我说:disabled => true并确定它被禁用,值在这里改变但是在我的ajax远程调用中他们不保存,只有当text_field_tag被启用时才会保存.这有什么工作吗?

jquery form-helpers ruby-on-rails-3.2

9
推荐指数
1
解决办法
3097
查看次数

rails - url_for在使用命名空间时表现不同(基于使用的当前控制器)

假设命名空间是"abc",我们有一个控制器"abcs",另一个使用命名空间"abc"的是"defs".

为了便于理解:

AbcsController
Abc::DefsController 
Run Code Online (Sandbox Code Playgroud)

当当前流程进入时AbcsController,url_for({:controller => "abcs", :action => :new})正在返回正确的url但是当流程进入Abc::DefsController时,我正在给出:

url_for({:controller => "abcs", :action => :new })
Run Code Online (Sandbox Code Playgroud)

它将其视为:

url_for({:controller => "abc/abcs", :action => :new})  #Observe abc/abcs
Run Code Online (Sandbox Code Playgroud)

所以,这里它应该是"abcs"而不是"abc/abcs",但它正是这样对待的.

什么是解决方案?请向我询问更多信息.

ruby-on-rails

9
推荐指数
2
解决办法
2659
查看次数

如何配置nginx + Unicorn以避免超时错误?

我有一个在nginx + Unicorn(Ubuntu 12.04)上运行的Rails(v3.2.13,Ruby 2.0.0)应用程序.一切都运行良好,除非管理员用户通过CVS文件上传用户(数千).问题是我将超时设置为30秒,导入过程需要更多时间.所以,30秒后我得到一个nginx 502 Bad Gateway页面(Unicorn worker被杀).

显而易见的解决方案是增加超时,但我不希望这样,因为它会导致另一个问题(我猜),因为它不是典型的行为.

有办法处理这类问题吗?

非常感谢提前.

PS:也许解决方案是修改代码.如果是这样,我想避免用户执行另一个请求.

一些想法(不知道是否可能):

  • 设置专门处理此请求的工作人员.
  • 向独角兽发送"正在进行中的工作"信号以避免被杀.

nginx的-app.conf

upstream xxx {
  server unix:/tmp/xxx.socket fail_timeout=0;
}


server {
  listen   80; 

  ...

  location / {

    proxy_pass  http://xxx;
    proxy_redirect     off;
    ...

    proxy_connect_timeout      360;
    proxy_send_timeout         360;
    proxy_read_timeout         360;
  }
}
Run Code Online (Sandbox Code Playgroud)

unicorn.rb

worker_processes 2

listen "/tmp/xxx.socket"

timeout 30

pid "/tmp/unicorn.xxx.pid"
Run Code Online (Sandbox Code Playgroud)

timeout ruby-on-rails nginx unicorn

7
推荐指数
1
解决办法
9157
查看次数