在Ruby on Rails中搜索两个数据库

时间:2016-11-16 20:35:25

标签: ruby-on-rails ruby database

我需要在Ruby on Rails中搜索两个数据库。两者都与书籍有关:名称,ISBN和价格。

我需要在同一个请求中搜索。可能吗?我已经创建了搜索一个数据库的应用程序。 Here是我遵循的教程。

2 个答案:

答案 0 :(得分:0)

我想你的意思是表,如果它们是相关的,那么你可以在一个请求中进行搜索。

有关示例,请参阅http://guides.rubyonrails.org/association_basics.html

示例是关于activerecord,Rails背后的数据库ORM。 他们使用关于书籍的模型,所以你不应该有遵循逻辑的问题。

编辑:既然你说它是关于不同的数据库,这里是一个如何同时连接到两个数据库的例子。您仍然需要在两者之间添加实现,请参阅上一部分。 在示例中,我甚至使用两个不同的数据库文件,一个在内存中,另一个在文件中,使用数据库引擎Sqlite

class Test < ActiveRecord::Base
  establish_connection(
    :adapter  => "sqlite3",
    :database => ":memory:"
  )
end

class Test2 < ActiveRecord::Base
  establish_connection(
    :adapter  => "sqlite3",
    :database => "testing.db"
  )
  self.table_name    = :tests
end

答案 1 :(得分:0)

我个人试图创建同时连接到多个数据库的rails应用程序,我很失望地说我不相信这是任何问题的合理解决方案。虽然它可以在技术上完成,但它涉及迫使Rails做很多事情,而这根本就没有意义。在接近逻辑之前,您需要搜索多个模型(这是您绝对需要的),您应该首先花一些时间来克服连接到多个数据库的障碍 - 特别是如果Ruby on Rails是适合该工作的工具

如果你认为你真的必须采用这种方法,我建议你看一下这里引用的一些答案:

Stack Overflow: Multiple Databases in Rails