我的团队由 Rails 和 Java 开发人员组成,他们一起开发 JRuby On Rails 应用程序。Rails 人更喜欢使用纯 Ruby 解释器来开发前端应用程序。Java 人员将应用程序部署到 Tomcat 并将其与 Spring 和核心 Java 后端服务集成。
我们知道哪个版本的 Ruby 正在执行该项目,以允许 Rails 研究员使用纯 Ruby 解释器来开发它。
比如我们调整数据库配置:
module MyWebApp
class Application < Rails::Application
def config.database_configuration
config = super
if defined? JRUBY_VERSION
config["development"]["adapter"]="jdbcsqlite3"
end
config
end
end
end
Gemfile 也是如此:
gem 'sqlite3'
if defined? JRUBY_VERSION
gem 'jdbc-sqlite3'
gem 'activerecord-jdbcsqlite3-adapter'
end
我们还模拟了核心 Java 服务:
class DocumentServiceFactory
def build
if defined? JRUBY_VERSION
spring_context :document_service
else
mock :document_service
end
end
end
这个解决方案对我们有用,但我很好奇是否有任何通用模式(或插件、gem、库等)可以使 Rails 应用程序对 Ruby 和 JRuby 都友好?