1

我正在使用 ruby​​ on rails 从远程服务器机器(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

数据库中存在的表BOdbTRDeviceDetails。我使用命令创建了模型和控制器

    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%>

我需要的是,从远程机器获取现有表。怎么可能以及为什么会发生这个错误?

4

1 回答 1

2

你应该使用

@devices = TrDeviceDetail.find(:all) # small 'r'

因为生成的类是

class TrDeviceDetail < ActiveRecord::Base

更新:

如果表名不符合约定,则应显式设置 table_name

class TrDeviceDetail < ActiveRecord::Base
  set_table_name 'TRDeviceDetails'
end
于 2013-03-07T10:03:54.817 回答