问题标签 [jrubyonrails]

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 投票
2 回答
494 浏览

ruby-on-rails - 将 HSQLDB 嵌入 Rails 应用程序时 SQL 无效

我正在将 Rails 应用程序移植到 JRuby 和 HSQLDB。我的目标是将数据库和站点嵌入到单个 JAR 文件中,以便在客户站点进行部署。我的站点在 JAR 中运行良好,但存在一些值得注意的问题。

当我使用非常普通的 ActiveRecord 模型执行以下操作时:

我得到以下异常:

ActiveRecord::StatementInvalid (ActiveRecord::ActiveRecordError: 不在聚合函数或 group by 子句中: org.hsqldb.Expression@7be117eb 在语句 [SELECT count(session_logs.id) AS count_id FROM session_logs WHERE (created_at >= '2010-02- 06' AND created_at <= '2010-03-09' AND session_type = 'tunnel_client') ORDER BY id DESC ]:

SELECT count(session_logs.id) AS count_id FROM session_logs WHERE (created_at >= '2010-02-06' AND created_at <= '2010-03-09' AND session_type = 'tunnel_client') ORDER BY id DESC)

我似乎很清楚 COUNT 语句导致了 HSQLDB 中的问题,但我不确定解决这个问题的解决方案是什么。SQLite3 和 MySQL 都可以毫无问题地处理这个 SQL 语句。

我愿意使用除 HSQLDB 之外的其他数据库,但它需要嵌入到我们在 JVM 上的应用程序中。这就是 HSQLDB 的魅力所在。

0 投票
1 回答
781 浏览

java - 为什么 jruby 抱怨有效的 java_opts

我已将我的 java 最小/最大堆大小设置为与Sun Docs中概述的相同,以便使用以下内容进行精确的堆大小调整:

当我启动tomcat时这很好用,但是如果我从命令行运行jruby它会抱怨说:

初始化 VM 时发生错误
指定的最小和最大堆大小不兼容

我在jruby 文档中读到了一些 -JX 参数,但我需要显式覆盖我的正常 jvm 设置似乎很愚蠢。

当我进行部署时会出现问题。我尝试jruby -S rake db:migrate在我的服务器上运行它并抱怨。

运行 jruby 时是否需要显式覆盖我的 JVM 设置?似乎任何 Xms/Xmx 值都会导致 jruby 抱怨。

更新 所以似乎某些设置确实有效。例如所有这些工作:

但这些不会:

0 投票
1 回答
437 浏览

ruby-on-rails - 在 jruby rails 应用程序中延迟加载 ESB

我有一个 jruby/rails 应用程序,使用:

目前在我们的 environment.rb 文件中,我们在初始化程序中启动 Mule。当我们去执行不需要 JMS/Mule 的普通 rake 任务(例如 db:migrate)时,这会变得很痛苦,因为每次启动/关闭 Mule 都需要很长时间。

代码与此类似:

我们使用APP_CONTEXT获取 bean 来连接到适当的服务。

我试图找出一些可以延迟实例化 APP_CONTEXT 的机制(不在初始化中),以避免在初始化时必须启动 Mule 的所有痛苦。

目前,我们有一些 ruby​​ 客户端类,它们在 application_controller 中被实例化为 before_filter,例如@data_service = DataService.new(APP_CONTEXT)为每个请求初始化适当的 java 客户端以在我们的控制器中使用。

我愿意接受所有建议。我很难找到合适的位置来放置这个懒惰的实例。

0 投票
1 回答
779 浏览

java - AppEngine JRuby - OutOfMemoryError: Java heap space - 可以解决吗?

我使用 AppEngine JRuby on Rails(SDK 版本 1.3.3.1)——我经常遇到的一个问题是,在几次请求之后,服务器变得非常缓慢,直到它死掉并在终端(OSX)上抛出 OutOfMemoryError。

请求本身非常轻量级,只不过是使用 DataMapper 查找或保存实体。

在appspot上,这个问题没有发生。

有什么办法可以扩大 JRuby 的堆空间吗?

异常日志:

0 投票
2 回答
790 浏览

ruby-on-rails - jruby 上的 Cucumber-rails 使用捆绑器将 gem 安装到我的应用程序根目录中

刚刚在 OSX 上安装cucumber 0.7.2cucumber-rails 0.3.1使用 jruby-1.4.0。当我运行捆绑安装时,它会在我的主应用程序中放置一个 cucumber-rails 目录,其中包含所有 gem 代码/依赖项。

首先,这绝对不是我想要的,我不确定为什么这只发生在黄瓜导轨上。

其次,如果我删除这个文件夹并手动安装 cucumber-rails,当我运行时script/generate feature blah我得到

同样运行rake cucumber我得到

所以显然有些事情是行不通的。如果我重新添加那个 cucumber-rails 目录,那么我的rake cucumber实际运行。

有人能告诉我为什么需要在我的 Rails 应用程序中安装 gem 吗?我以前从未见过这种情况。

设置
jruby-1.4.0
cucumber-0.7.2
cucumber-rails 0.3.1
bundler 0.9.23
webrat 0.7.1

编辑

除此之外,我决定我厌倦了试图让它工作,所以我从我的 Gemfile 中删除了所有 cucumber / cucumber-rails deps 并重新运行bundle install。它仍然会创建 cucumber-rails 目录,此外,除非该目录存在,否则我无法运行任何东西,(rake 等......)否则我会收到source index not created from disk消息。

EDIT2 我刚刚注意到我Rails.root/.bundle/configBUNDLE_PATH: cucumber-rails. 有谁知道为什么会在那里?

0 投票
1 回答
1250 浏览

ruby-on-rails - 使用 Bundler 和 JRuby 的 Rails 部署策略

我有一个 jruby rails 应用程序,我刚刚开始使用 bundler 进行 gem 依赖管理。我有兴趣听取人们对部署策略的意见。文档说这bundle package会在本地打包你的 gem,这样你就不必在服务器上获取它们(我相信 warbler 默认会这样做),但我个人认为(对我们来说)这不是我们部署的方式代码(在我们的例子中是一个 WAR 文件)变得更大。

我的偏好是模仿我们的 MVN 设置,该设置在将代码复制到服务器后直接在服务器上获取所有依赖项。以下是我的想法,感谢所有评论:

Step1:构建war文件,复制到服务器
Step2:在服务器上解压war,使用mvn获取java依赖Step3:使用Bundler获取Gem deps(这些应该放在哪里??)
* Step 3是我有点不清楚的步骤在。我是否bundle install有特定的目标?
第四步:重启Tomcat

我在这里的理由是,我想在部署时将依赖项与代码分开。我还想将所有 gem 依赖项放在应用程序本身中,以便包含它们,而不是将它们安装在应用程序用户的主目录中(同样,我相信这是 Bundler 的默认设置)

0 投票
1 回答
655 浏览

ruby-on-rails - 如何使用 activerecord-jdbc 在 Rails 2.3 中使用 bigint 数据类型作为主键

我有一个从 Rails 1.2 移植到 2.3 的 Rails 应用程序。我也正在从 Ruby MRI 迁移到最新版本的 JRuby。

在现有的(Rails 1.2)应用程序中,我使用 mysql_bigint 插件来提供对 64 位整数作为主键的支持。

对于针对 MS SQL 2005 数据库服务器运行的新应用程序,我需要做同样的事情。

我不确定这里的代码段是否会有所帮助:using UUID as primary key in rails and polymorph Relations

任何想法从哪里开始?

TIA

戴夫

0 投票
3 回答
877 浏览

ruby-on-rails - 如何在 JRuby on Rails 的开发模式下启用视图文件的自动重新加载?

我正在用 JRuby on Rails 开发一个应用程序。出于某种原因,当我编辑视图文件时,开发 JRuby Mongrel 服务器不会重新加载它们。令人困惑的是,在编辑完控制器文件后,服​​务器会在下一次请求时重新加载它们。

即使在使用 MRI Ruby 时这也会很烦人,但是在每次视图编辑后启动 JRuby Mongrel 会慢得多,而且更烦人。(请注意,一旦启动它会非常快,唯一的问题是启动——每次我启动 JRuby Mongrel 时,JVM 都必须加载。)

我正在运行 JRuby 1.5.0、Rails 2.3.5 和 Java 6。

0 投票
1 回答
501 浏览

ruby-on-rails - 我为 JRuby on Rails 使用什么 Web 托管服务?

我正在使用 JRuby on Rails 开发一个网站,因为我需要一些 Java 功能服务器端。我想部署它,我需要使用支持 JSP 的托管服务。我是对的吗?这就是我所需要的吗?或者还有什么我需要部署我的站点的吗?我该怎么做呢?

0 投票
1 回答
324 浏览

ruby-on-rails - 如何在 rails 2.3 上使用 jruby 解压 gem?

我正在尝试解压缩所有系统 gem,最终得到一个独立的 Rails 目录,包括所有 rails gem 和所有系统 gem。

我从裸轨设置开始;刚刚做了一个 jruby -S rails 和一个“生成 jdbc”。然后我将 config.gem 'jdbc-mysql' 添加到 environment.rb 并执行 jruby -S rake gems:unpack:dependencies。

打开包装后,如果我做一个耙子,我会得到:

您还需要做些什么来解压 jdbc gem 吗?

我正在使用 jruby 1.4.0(移动到 1.5 在我的待办事项列表中)和 rails 2.3.8。