问题标签 [ruby-on-rails]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8584 浏览

如何在 Mongrel 下重启 Rails,而不停止和启动 Mongrel

有没有办法在 Mongrel 运行时重新启动 Rails 应用程序(例如,当您更改插件/配置文件时)。或者快速重启 Mongrel。Mongrel 给出了这些提示,你可以,但你是怎么做到的?

** 信号准备就绪。期限 => 停止。USR2 => 重启。INT => 停止(不重新启动)。

** Rails 信号已注册。HUP => 重新加载(无需重新启动)。它可能无法正常工作。

0 投票
5 回答
1442 浏览

为什么 Apache 还没有一个可行的 mod_ruby?

与 Ruby 和 Rails 一样流行,似乎这个问题已经得到解决。JRuby 和 mod_rails 都很好而且花花公子,但是为什么没有一个 Apache mod 只适用于纯 Ruby 呢?

0 投票
4 回答
2415 浏览

BlazeDS Livecycle Data Services 做了什么,而 PyAMF 或 RubyAMF 之类的东西不做?

我正在进行技术审查并查看 AMF 与各种后端(Rails、Python、Grails 等)的集成。

有很多选择,问题是,Adobe 产品(BlazeDS 等)有什么像 RubyAMF / pyAMF 没有的?

0 投票
2 回答
2031 浏览

Mongrel 以 100% CPU / EBADF 挂起(错误的文件描述符)

我们有一个服务器,有 10 个正在运行的 mongrel_cluster 实例,它们前面有 apache,并且不时有一个或一些挂起。在数据库中没有看到任何活动(我们正在使用 activerecord 会话)。带有innodb 表的Mysql。show innodb status 显示没有锁。show processlist 什么也不显示。

服务器是linux debian 4.0

Ruby 是:ruby 1.8.6 (2008-03-03 patchlevel 114) [i486-linux]

Rails 是:Rails 1.1.2(是的,很旧)

我们正在使用本机 mysql 连接器(gem install mysql)

“strace -p PID”在循环中为挂起的杂种进程提供以下内容:

使用lsof发现进程使用了​​67个文件描述符(lsof -p PID |wc -l)

有没有其他方法可以调试它,以便例如确定哪个文件描述符是“坏的”?还有其他信息或建议吗?还有人看到这个吗?

该站点被充分使用,但并不过分,平均负载通常在 0.3 左右。


一些额外的信息。我安装了 mongrelproctitle 来显示挂起的进程在做什么,似乎它们挂在一种方法上,该方法使用 file_column / 数据库中的图像 / rmagick 来显示图像以调整图像大小并使图像变为灰度。

问题不在这里,但这是一个怀疑。以下内容有明显问题吗?如果订单不包含图像,则该方法显示静态图像,否则图像会根据订单调整大小。缓存的东西是为了让图像每次都在浏览器中更新。图像被插入到带有普通图像标签的页面中。

代码:

如果有人能在其中找到任何问题,这是 lsof 输出。不知道它在这条消息中的格式...

我已经安装了monit来监控服务器。由于 PID 文件问题,还没有自动重启,但也许我会得到支持删除陈旧 PID 文件的最新版本。
实际解决问题会很好,因为如果服务器需要一直重新启动(每天约 10 次),有人会断开连接等

发生这种情况时,mongrel-processes 不会占用任何大量内存,并且机器甚至没有交换,所以它可能不是内存泄漏。

0 投票
2 回答
160 浏览

与 Java Web 应用程序世界中的 RJS(用于 Ruby on Rails)类似吗?

在 Ruby on Rails 中,有 RJS 模板通过返回将在客户端浏览器中执行的 JavaScript 代码来帮助执行 AJAX。我怎样才能在 Java/J2EE 世界中做类似的事情?Google Widget Toolkit 是否类似于 RJS?我有什么选择?

0 投票
16 回答
27095 浏览

SQLite3::BusyException

现在使用 SQLite3 运行一个 Rails 站点。

大约每 500 个请求左右,我得到一个

ActiveRecord::StatementInvalid (SQLite3::BusyException: 数据库被锁定:...

解决这个问题的方法是什么,对我的代码的侵入性最小?

我目前正在使用 SQLLite,因为您可以将数据库存储在源代码控制中,这使得备份变得自然,并且您可以非常快速地推出更改。但是,它显然不是真正为并发访问设置的。明天早上我将迁移到 MySQL。

0 投票
5 回答
7536 浏览

哪个 Rails 插件最适合基于角色的权限?(请为每个答案提供一项提名)

我需要为我的 Rails 应用程序添加基于角色的权限,并且想知道有哪些最好的插件可供研究。我目前正在使用 RESTful 身份验证插件来处理用户身份验证。为什么你建议的插件比其他插件更好?

0 投票
4 回答
11802 浏览

为 Phusion 乘客应用程序设置环境变量

我已经设置了开发中的Passenger(Mac OS X),它完美无缺。唯一的问题是后来出现的:现在我有一个自定义GEM_HOME路径和 ImageMagick 二进制文件安装在"/usr/local". 我可以将它们放在获取源的 shell rc 文件之一中,这解决了从控制台生成的进程的环境变量;但是乘客呢?以这种方式运行时,同一个应用程序找不到我的宝石。

0 投票
4 回答
5488 浏览

Ruby/Rails 集合到集合

我有一个连接表的两个表 - 这只是伪代码:

我需要做的是,如果我有图书馆的 id,我想获取该图书馆所有书籍所在的所有图书馆。

因此,如果我有图书馆 1,图书馆 1 中有书 A 和 B,而书 A 和 B 在图书馆 1、2 和 3 中,那么是否有一种优雅的(单行)方法可以在 rails 中做到这一点?

我刚在想:

但这似乎不起作用。建议?

0 投票
2 回答
142 浏览

ActiveRecord#save_only_valid_attributes

我正在寻找一种#save方法的变体,它只会保存没有附加错误的属性。所以一个模型可以在整体上不有效的情况下更新,这仍然可以防止将无效数据保存到数据库中。

“有效属性”是指那些在调用 @model_instance.errors.on(:attribute) 时给出 nil 的属性

任何人都知道如何做到这一点?

到目前为止,我有以下内容:

如果没有对分配进行处理,这在我的情况下是有效的。例如,我有一个数据库列“start_date”,并定义了两个方法:

这两种方法允许我在保存之前使用 Chronic 正确解析用户输入的日期。所以,第二种方法,一次一个属性:

每次都需要重新加载模型,因为如果其中一个日期无效且未保存,它将阻止所有进一步的属性保存。

有一个更好的方法吗?我确信这在 Rails 世界中并不少见,我只是似乎无法在 Google 的知识世界中找到任何东西。