我遇到以下情况:
我有一个rails应用程序和两个数据库,一个用于Rails应用程序,第二个数据库(在相同的数据库服务器实例上运行)用于另一个非Web应用程序。
我的Rails Web应用程序可以直接通过SQL从(第二个)数据库读取,但由于安全限制而无法写入(数据必须由非Web应用程序验证)。因此,我们编写了一个基于SOAP的CLI接口,用于写入数据库。
我的问题是:我是否可以通过某种方式扩展ActiveRecord模型(Rails 3),以便在SQL连接上正常读取,但更新/创建/删除通过我们的自制界面。
感谢您的回复!
答案 0 :(得分:1)
我想我找到了一个很好的解决方案:)
@ rtacconi:感谢您的链接,但是从Rails 3开始,您不必使用这些扩展,因为ActiveModel可以开箱即用工作表了。
我需要完整的ActiveRecord支持来读取表格,但写作是通过我的SOAP接口完成的。这是因为我无法验证Rails应用程序中的数据。
所以我的解决方案是重载ActiveRecord :: Persistence Module(可以在activerecord-3.0.0 / lib / active_record / persistence.rb中找到。
该模块负责DB连接的任何写入任务。因此,我的持久层不是写入数据库,而是调用SOAP接口。
祝你好运
西蒙
答案 1 :(得分:0)
您可以实施无表格模型:ActiveRecord::Base Without Table或http://github.com/AnthonyCaliendo/acts_without_database
您可以使用SOAP库将数据设置/获取到对象中。