Rails 3.2具有相同模型名称的多个数据库连接

保罗

关于在Rails中创建到多个数据库的多个连接,存在许多问题和答案:

https://stackoverflow.com/a/7480330/2120023

https://stackoverflow.com/a/6305540/2120023

来自外部stackoverflow的示例:http : //ilikestuffblog.com/2012/09/21/ Establishment-a-connection-to-a-non-default-database-in-rails-3-2-2 /

但是我还没有找到一种解决方案,该解决方案可以使用两个数据库中都出现的模型。

如果我的默认数据库有一个表titles,我的Other数据库有一个表titles我该如何访问其它数据库的标题模式?

title.rb

class Title < ActiveRecord::Base
end

othertitle.rb

class Other < ActiveRecord::Base
  self.abstract_class = true
  establish_connection "other_#{Rails.env}"
end

class OtherTitle < Other
end

我不能使用上面的命令,因为我得到了这个错误(编辑:为了清楚起见,other_titles在两个db中都没有表,只有一个titles表->编辑2:如果我确实other_titlesOther数据库中创建了一个表,那么一切工作正常,但这无济于事我进入titles表格。):

ActiveRecord::StatementInvalid: Mysql2::Error: Table 'other.other_titles' doesn't exist: SHOW FULL FIELDS FROM `other_titles`

我也无法使用,class Title < Other因为出现TypeError: superclass mismatch for class Title错误。

database.yml

development:
  adapter: mysql2
  encoding: utf8
  database: db_dev
  pool: 5
  username: xxxx
  password: xxxx
  socket: /var/lib/mysql/mysql.sock

production:
  adapter: mysql2
  encoding: utf8
  database: db
  pool: 5
  username: xxxx
  password: xxxx
  socket: /var/lib/mysql/mysql.sock


other_development:
  adapter: mysql2
  encoding: utf8
  database: other_dev
  pool: 5
  username: xxxx
  password: xxxx
  socket: /var/lib/mysql/mysql.sock

other_production:
  adapter: mysql2
  encoding: utf8
  database: other
  pool: 5
  username: xxxx
  password: xxxx
  socket: /var/lib/mysql/mysql.sock 
保罗

我找到了答案,这很简单:

class OtherTitle < Other
  self.table_name='titles'
end

这里引用:

从第二个数据库中提取数据的有效方法?

和这里:

无法连接到Rails 3.2中的两个postgres数据库。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails中的多个数据库连接4

来自分类Dev

在CakePHP 3中连接多个数据库

来自分类Dev

Codeigniter 3与dbforge的多个数据库连接

来自分类Dev

cakephp 3中的多个数据库连接

来自分类Dev

Rails 3 + rspec + postgres:如何针对具有外键约束的数据库运行测试套件?

来自分类Dev

是否可以在rails中有多个数据库连接池来进行切换?

来自分类Dev

使用Rails 3从数据库中获取数据数组

来自分类Dev

3种模型的Rails关系

来自分类Dev

将Java应用程序连接到Ruby on Rails SQLite3数据库

来自分类Dev

无法使用Rails应用程序连接到sqlite3数据库

来自分类Dev

在Rails上配置远程sqlite3数据库

来自分类Dev

Rails 3 + Rspec:测试模型是否具有属性?

来自分类Dev

Rails 3 Form Helper用于具有嵌套属性的模型

来自分类Dev

Rails:使用SQL查询连接到多个数据库

来自分类Dev

具有多个可选参数的Rails 3路线

来自分类Dev

Rails 使用多个数据库 - 没有将 nil 隐式转换为 String

来自分类Dev

Rails:在没有模型或数据库连接的情况下使用sanitize_sql_for_conditions

来自分类Dev

Ruby on Rails具有相同模型的多个关联

来自分类Dev

Laravel - 多个数据库连接从 3 个表中获得平均值

来自分类Dev

具有相同数据库的两个Rails应用程序?

来自分类Dev

Rails 3将数据库名称添加到表中,使其包括默认值以方便加载

来自分类Dev

Rails 4,rspec 3:模型验证测试

来自分类Dev

无法使用Rails 3迁移新模型

来自分类Dev

3 个模型的 Rails 5 嵌套资源?

来自分类Dev

没有模型和数据库的Rails 4表单

来自分类Dev

Rails 4具有嵌套属性的多个ruby数组

来自分类Dev

Rails 4具有simple_fields_for的嵌套属性,一次保存但一次不保存到数据库

来自分类Dev

使用Sunspot Solr Rails 3搜索多个模型时出错

来自分类Dev

带有Devise on Rails 3的注销链接

Related 相关文章

  1. 1

    Rails中的多个数据库连接4

  2. 2

    在CakePHP 3中连接多个数据库

  3. 3

    Codeigniter 3与dbforge的多个数据库连接

  4. 4

    cakephp 3中的多个数据库连接

  5. 5

    Rails 3 + rspec + postgres:如何针对具有外键约束的数据库运行测试套件?

  6. 6

    是否可以在rails中有多个数据库连接池来进行切换?

  7. 7

    使用Rails 3从数据库中获取数据数组

  8. 8

    3种模型的Rails关系

  9. 9

    将Java应用程序连接到Ruby on Rails SQLite3数据库

  10. 10

    无法使用Rails应用程序连接到sqlite3数据库

  11. 11

    在Rails上配置远程sqlite3数据库

  12. 12

    Rails 3 + Rspec:测试模型是否具有属性?

  13. 13

    Rails 3 Form Helper用于具有嵌套属性的模型

  14. 14

    Rails:使用SQL查询连接到多个数据库

  15. 15

    具有多个可选参数的Rails 3路线

  16. 16

    Rails 使用多个数据库 - 没有将 nil 隐式转换为 String

  17. 17

    Rails:在没有模型或数据库连接的情况下使用sanitize_sql_for_conditions

  18. 18

    Ruby on Rails具有相同模型的多个关联

  19. 19

    Laravel - 多个数据库连接从 3 个表中获得平均值

  20. 20

    具有相同数据库的两个Rails应用程序?

  21. 21

    Rails 3将数据库名称添加到表中,使其包括默认值以方便加载

  22. 22

    Rails 4,rspec 3:模型验证测试

  23. 23

    无法使用Rails 3迁移新模型

  24. 24

    3 个模型的 Rails 5 嵌套资源?

  25. 25

    没有模型和数据库的Rails 4表单

  26. 26

    Rails 4具有嵌套属性的多个ruby数组

  27. 27

    Rails 4具有simple_fields_for的嵌套属性,一次保存但一次不保存到数据库

  28. 28

    使用Sunspot Solr Rails 3搜索多个模型时出错

  29. 29

    带有Devise on Rails 3的注销链接

热门标签

归档