【发布时间】:2014-02-12 16:46:25
【问题描述】:
我是 Ruby on rails 的新手,我最近创建了一个连接到 sqlite3 数据库的小型会计应用程序。
目前,我仍在开发中,我可以使用控制器端的 activerecord 命令保存新数据或更新数据库中的现有记录。
但我的问题是关于 JRuby 的 JDBC:
我也是 Java 新手,据我了解,JRuby 完全由 Java 代码组成,并且在 JVM 上运行。而且如果用 C 语言编写,有些宝石将无法工作。
如果我开始使用 JRuby 而不是 MRI,会有什么不同?我是否仍会使用活动记录命令来处理数据库中的记录?
如果我使用 JRuby 并创建一个新应用程序,那么 JDBC 适配器的工作方式是否与现有的 gem(如 sqlite3)完全一样,可以将应用程序连接到数据库?
或者我只需要编写 JDBC 适配器而不是控制器?
我对它的工作原理有点困惑,非常感谢您提供一些信息。提前谢谢你!
编辑:
我的意思是,目前我的应用程序正在使用 Ruby on Rails,并且我正在控制器中使用命令,例如当您更新现有记录时:
@variable = [Table_name].find(:id)
然后
@variable.update_attributes(params[:submit])
此命令将使用 RoR 更新记录,但如果在 JRuby 中使用 Rails,这将如何工作?语法一样吗?
【问题讨论】:
-
欢迎来到 StackOverflow!如果您有两个框架的代码示例,您的问题将得到更多关注。我会更容易指出差异。
-
哦,我还没有开始使用 JRuby,因为我还在研究它。我只是想知道两者之间的区别,比如访问数据库时的语法。是一样的吗?
-
不知道他们为什么将这个问题标记为不清楚,很明显你很困惑,但这并不意味着我们不能帮助你。切换到 JRuby 不会改变您的 ruby 代码,除了缺少 gem。 Rails 在 JRuby 上运行良好,这意味着它的整个基础架构都可以正常运行:activerecord 也是如此。您不应该关心 db 适配器,我认为 Rails 现在支持所有数据库没有很多问题,即使在 jruby 上也是如此(如果不是,请检查)。您可能对 ruby C gems 有疑问,但在这种情况下,您将根本无法使用它们(因此您不会拥有它们)。评论很短
-
谢谢。所以大部分语法都是一样的。但是我能问一下 JDBC 适配器是干什么用的吗?我需要创建一个在特定数据库上使用吗?
-
它允许您连接到 JDBC 可以连接的任何数据库类型(很多):github.com/jruby/activerecord-jdbc-adapter 无论如何,一旦将其包含在应用程序中,它就是透明的。
标签: ruby-on-rails ruby activerecord jdbc jruby