1

リモートサーバーマシン(SQL SERVER)から既存のdbテーブルをフェッチするために、Ruby on Railsで作業しています。実際、これを行う方法がわかりません。この方法に従っています。修正してください

私の問題は、実行に結びついている間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 あり、UniqueDeviceID を表示するための show.html.erb ファイルを作成しました

<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 に答える