0

我正在尝试为没有适配器的 QuickBase 开发 Rails 应用程序。我在网上查看了 QuickBase 适配器,但它无法正常工作,因为它适用于非常旧的 rails 版本,作者告诉我他不再支持它。

我希望能够使用典型 Rails 应用程序的 Active Record 和相关概念,但干预和修改创建、更新和显示操作的工作方式。我已创建应用程序以成功创建新记录。但是,当我希望能够编辑记录时,我首先修改了编辑操作以转到我自己的数据库并将数据获取到活动记录对象中。

为了创建一个空的 Active Record,我说 $user = User.new 然后我用自定义数据库中的数据填充了所有属性。但是表单仍然显示创建用户按钮,而不是更新用户按钮。显然,我猜这是因为坚持?方法返回 false,因为这是一个“新”对象。但我知道这不是一个新的。那么我如何影响@user 对象使其认为它是一个持久对象呢?

或者,有没有办法可以在没有新功能的情况下创建空白 @user 对象?

我已经检查了所有地方,但找不到有关如何完成此操作的任何线索。非常感谢你的帮助。

4

1 回答 1

0

您可以@user.disconnect!在 call 之后尝试调用@user = User.new,这将阻止 ActiveRecord 尝试写入数据库,但我不确定这会解决您的问题。

更大的问题是你试图在这里将一个方形钉子安装到一个圆孔中。ActiveRecord 的全部意义在于抽象与数据库的连接。那么没有数据库,还有什么意义呢?

我认为您最好的解决方案是编写自己的 QB 适配器。这可能没有您想象的那么难,因为您似乎已经知道如何读/写数据库。

您可以在此处阅读有关如何执行此操作的更多信息:http: //api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/AbstractAdapter.html

于 2014-10-29T23:28:19.717 回答