小编gam*_*mov的帖子

如何在Windows上部署Rails 3应用程序?

我一直在寻找一种在Windows上可靠地部署Rails 3应用程序的方法.我很震惊,似乎目前没有办法做到这一点.Apache +少数Mongrel服务解决方案目前无法正常工作,因为Mongrel无法在守护进程模式下运行,因此我无法将其安装为mongrel_service.

我猜的要求应该是:

  • 与Rails 3兼容的Web服务器.
  • 必须能够作为Windows服务运行,守护进程.
  • 如果出现问题,必须能够自动重启.
  • 必须是生产质量:没有内存泄漏等.
  • 应该能够扩展,并同时接受多个请求.
  • 减少黑客攻击.

我发现了这些东西:

  • Mongrel没有为Rails 3(1.2.0pre)做好准备,我从控制台窗口快速地遇到内存泄漏.该应用程序刚刚退出.
  • Mongrel不-d使用Rails 3 在守护进程模式()中运行.
  • 因此,Mongrel无法作为服务安装.
  • Windows上没有Phusion Passenger(这将是最好的解决方案).

这些是我提出的可能的解决方案:

  • 获取一个Linux机器,安装Apache + Phusion Passenger并滚动.
  • 然而,使用thin,作者说薄的过程没有"保护".
  • 然而,使用Ngnix,作者说他只是运行了一个默认应用程序,而不是一个完整运行的应用程序.
  • 使用Ngnix.我认为这个解决方案遇到了与上面相同的问题.
  • 使用Linux的虚拟化,但我必须解决自动启动等问题.
  • 在Tomcat中运行JRuby.

这可能是一个方便的工具:http://projectkenai.com/projects/winsw

我希望我们能找到解决这个问题的真正办法.


更新:

我同意JRuby + j2ee容器是最好的选择.有些问题必须像带有扩展名的宝石一样解决.这里有很多有价值的想法:http://rails-nutshell.labs.oreilly.com/ch14.html#production_r259035_id35801805

windows service ruby-on-rails-3

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

如何在Rails中测试记录顺序?

我发现测试来自数据库的记录是否正确排序是非常冗长和乏味的.我正在考虑使用数组'=='方法来比较两个搜索数组.数组的元素和顺序必须相同,所以它似乎很合适.问题是,如果缺少元素,即使严格按顺序排序,测试也会失败.

我想知道是否有更好的方法......

testing ruby-on-rails

7
推荐指数
2
解决办法
2021
查看次数

Rails:单个功能测试中的多个get请求

我想在相同的测试中对一些获取请求进行分组,但是我得到了不稳定的行为.我有以下两个测试:

test 'index for local seller (same site)' do
  seller = FactoryGirl.create :seller, business_site: @open_or.business_site
  get :index, nil, {user_id: seller.to_param }
  assert_select "table#order_requests tr##{@controller.view_context.dom_id @open_or}"
end
test 'index for local seller (different site)' do
  seller = FactoryGirl.create :seller_local
  get :index, nil, {user_id: seller.to_param }
  assert_select "table#order_requests tr##{@controller.view_context.dom_id @open_or}", false
end
Run Code Online (Sandbox Code Playgroud)

我希望在一次测试中合并,但如果我这样做,第二个断言将错误地失败(预期正好0个元素匹配"table#order_requests tr#order_request_1000244799",找到1.).我真的不明白为什么?第二次'get'调用可能无法正常重置某些内容.我想方设法"重置"请求但没有成功.

相关:在rails集成规范中向同一个控制器发出两个请求

ruby-on-rails functional-testing

4
推荐指数
1
解决办法
2164
查看次数