我在rails上使用ruby从远程服务器机器(SQL SERVER)获取现有的数据库表。实际上我不知道怎么做。请按照这种方式。请纠正我
我的问题是在跑步uninitialized constant TrDeviceDetailsController::TRDeviceDetail
的过程中。
我在database.yml
文件中设置了以下内容。
development:
adapter: sqlserver
mode: odbc
database: BObd
dsn: newdb_64
username: ush
password: Ushu
host: ws1a20\SQLEXPRESS
db BOdb
中存在的表是TRDeviceDetails
。我使用命令创建了模型和控制器
rails generate model `TRDeviceDetail`
rails generate controller `TRDeviceDetails`
在控制器中我提出以下
class TrDeviceDetailsController < ApplicationController
def show
@devices = TRDeviceDetail.find(:all)
end
end
模型文件
class TrDeviceDetail < ActiveRecord::Base
# attr_accessible :title, :body
attr_accessible :UniqueDeviceID
end
其中UniqueDeviceID
是表TrDeviceDetails
中的现有列
并创建了一个show.html.erb文件,用于显示UniqueDeviceID
<h1>TrDeviceDetails#show</h1>
<p>Find me in app/views/tr_device_details/show.html.erb</p>
<%@device.inspect%>
我需要的是,从远程机器获取现有表。如何可能以及为什么会出现此错误?
答案 0 :(得分:2)
你应该使用
@devices = TrDeviceDetail.find(:all) # small 'r'
因为生成的类是
class TrDeviceDetail < ActiveRecord::Base
更新:
如果表名不符合约定,则应明确设置table_name
class TrDeviceDetail < ActiveRecord::Base
set_table_name 'TRDeviceDetails'
end