问题标签 [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.
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 的魅力所在。
java - 为什么 jruby 抱怨有效的 java_opts
我已将我的 java 最小/最大堆大小设置为与Sun Docs中概述的相同,以便使用以下内容进行精确的堆大小调整:
当我启动tomcat时这很好用,但是如果我从命令行运行jruby
它会抱怨说:
初始化 VM 时发生错误
指定的最小和最大堆大小不兼容
我在jruby 文档中读到了一些 -JX 参数,但我需要显式覆盖我的正常 jvm 设置似乎很愚蠢。
当我进行部署时会出现问题。我尝试jruby -S rake db:migrate
在我的服务器上运行它并抱怨。
运行 jruby 时是否需要显式覆盖我的 JVM 设置?似乎任何 Xms/Xmx 值都会导致 jruby 抱怨。
更新 所以似乎某些设置确实有效。例如所有这些工作:
但这些不会:
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 客户端以在我们的控制器中使用。
我愿意接受所有建议。我很难找到合适的位置来放置这个懒惰的实例。
java - AppEngine JRuby - OutOfMemoryError: Java heap space - 可以解决吗?
我使用 AppEngine JRuby on Rails(SDK 版本 1.3.3.1)——我经常遇到的一个问题是,在几次请求之后,服务器变得非常缓慢,直到它死掉并在终端(OSX)上抛出 OutOfMemoryError。
请求本身非常轻量级,只不过是使用 DataMapper 查找或保存实体。
在appspot上,这个问题没有发生。
有什么办法可以扩大 JRuby 的堆空间吗?
异常日志:
ruby-on-rails - jruby 上的 Cucumber-rails 使用捆绑器将 gem 安装到我的应用程序根目录中
刚刚在 OSX 上安装cucumber 0.7.2
并cucumber-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/config
的BUNDLE_PATH: cucumber-rails
. 有谁知道为什么会在那里?
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 的默认设置)
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
戴夫
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。
ruby-on-rails - 我为 JRuby on Rails 使用什么 Web 托管服务?
我正在使用 JRuby on Rails 开发一个网站,因为我需要一些 Java 功能服务器端。我想部署它,我需要使用支持 JSP 的托管服务。我是对的吗?这就是我所需要的吗?或者还有什么我需要部署我的站点的吗?我该怎么做呢?
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。