我正在尝试为QuickBase开发一个没有适配器的Rails应用程序。我在网上查看了QuickBase适配器,但它不能用于非常旧版本的rails并且作者告诉我他不再支持它。
我希望能够使用Active Record和典型rails应用程序的相关概念,但是干预并修改创建,更新和显示操作的工作方式。我已创建应用程序以成功创建新记录。但是,当我希望能够编辑记录时,我首先修改了编辑操作以转到我自己的数据库并将数据转换为活动记录对象。
要创建一个空的Active Record,我说$ user = User.new 然后,我使用自定义数据库中的数据填充所有属性。但表单仍显示“创建用户”按钮,而不是“更新用户”按钮。显然,我猜这是因为坚持?方法返回false,因为这是一个" new"宾语。但我知道这不是一个新的。那么我如何影响@user对象以认为它是持久的呢?
或者,有没有办法可以在没有新函数的情况下创建空白@user对象?
我已经检查了所有地方,但无法找到任何关于如何实现这一目标的线索。非常感谢你的帮助。
答案 0 :(得分:0)
您可以在通话@user.disconnect!
后尝试拨打@user = User.new
,这会阻止ActiveRecord尝试写入数据库,但我不确定这会解决您的问题。
更大的问题是你在这里试图将一个方形钉固定在一个圆孔中。 ActiveRecord的重点是抽象连接到数据库。所以没有数据库,重点是什么?
我认为您最好的解决方案是编写自己的QB适配器。它可能没有您想象的那么困难,因为您似乎已经知道如何读/写数据库。
您可以在此处详细了解如何执行此操作:http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/AbstractAdapter.html