我正在尝试构建一个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上查询我需要的特定表。数据库上有多个表,但我只想查询特定的表。第三,我不确定我是如何实际显示这些数据的,但是......宝贝步骤。
答案 0 :(得分:1)
我认为set_table_name
会让您指定特定的表格。
您也可以更改主键...
self.primary_key = 'primaryKey'
self.table_name = 'db.inventory'
您只需运行rails console
,然后执行MyExternalModel.first
或MyExternalModel.find(1)
您可以在测试中使用模型(测试准备只会清除您的测试数据库),假设您没有写入远程数据库。