Rails:查询远程数据库上的特定表

时间:2016-02-23 16:19:36

标签: ruby-on-rails ruby sqlanywhere

我正在尝试构建一个Rails应用程序,该应用程序查询远程数据库上的表并将所选信息显示为HTML。远程数据库是SQL Anywhere 16.信息位于数据库的特定表上,如:db.inventory。列名称设置如下:primarykey | ItemName | ItemPrice | ItemQuantity | etc。我想要做的是提取一些信息并显示,例如<itemname /> <itemprice /> <itemquantity />

远程数据库是SQL Anywhere 16,因此我在gemfile中安装了sqlanywhere gem和activerecord-sqlanywher-adapter

除了我的本地sqlite数据库之外,我在database.yml中设置了连接信息:

my_external_database:
  adapter: sqlanywhere
  encoding: utf-8
  username: (username)
  password: (password)
  server: (name of the server)
  host: (ip of the server)

我的模型设置如下:

class MyExternalModel < ActiveRecord::Base
    establish_connection(:my_external_database)
    set_table_name 'tablename'
end

我不明白的是(1)如何测试连接,以及(2)如何在db上查询我需要的特定表。数据库上有多个表,但我只想查询特定的表。第三,我不确定我是如何实际显示这些数据的,但是......宝贝步骤。

1 个答案:

答案 0 :(得分:1)

我认为set_table_name会让您指定特定的表格。

您也可以更改主键...

self.primary_key = 'primaryKey'
self.table_name = 'db.inventory'

您只需运行rails console,然后执行MyExternalModel.firstMyExternalModel.find(1)

,即可从理智的角度测试连接

您可以在测试中使用模型(测试准备只会清除您的测试数据库),假设您没有写入远程数据库。