轨道上的红宝石中未初始化的常量错误

时间:2013-03-07 09:59:07

标签: ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

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

我需要的是,从远程机器获取现有表。如何可能以及为什么会出现此错误?

1 个答案:

答案 0 :(得分:2)

你应该使用

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

因为生成的类是

class TrDeviceDetail < ActiveRecord::Base

更新:

如果表名不符合约定,则应明确设置table_name

class TrDeviceDetail < ActiveRecord::Base
  set_table_name 'TRDeviceDetails'
end