1

我遇到了以下情况:

我有一个 Rails 应用程序和两个数据库,一个用于 Rails 应用程序,第二个数据库(在同一个数据库服务器实例上运行)用于不同的非 Web 应用程序。

我的 Rails Web 应用程序可以通过 SQL 直接从(第二个)数据库读取,但由于安全限制(数据必须由非 Web 应用程序验证),它不能写入它。因此,我们编写了一个基于 SOAP 的小 CLI 接口,用于写入数据库。

我的问题是:我能否以某种方式扩展 ActiveRecord 模型(Rails 3),以便通过 SQL 连接正常读取,但更新/创建/删除通过我们自制的界面进行。

感谢您的任何回复!

4

2 回答 2

1

我想我找到了一个很好的解决方案:)

@ rtacconi:感谢您的链接,但自从 Rails 3 以来,您不必使用这些扩展,因为 ActiveModel 开箱即用无表工作:)

我需要完整的 ActiveRecord 支持来读取表格,但写入是通过我的 SOAP 接口完成的。这是因为我无法验证 Rails 应用程序中的数据。

所以我的解决方案是重载 ActiveRecord::Persistence 模块(可以在 activerecord-3.0.0/lib/active_record/persistence.rb 中找到。

该模块负责对数据库连接的任何写入任务。因此,我的持久层调用了 SOAP 接口,而不是写入数据库。

此致

西蒙

于 2010-09-06T17:50:12.943 回答
0

您可以实现无表模型:ActiveRecord::Base Without Tablehttp://github.com/AnthonyCaliendo/acts_without_database

您可以使用 SOAP 库将数据设置/获取到对象中。

于 2010-09-06T15:39:45.987 回答