2013-03-07 3 views
1

Iam работает в рубине на рельсах для извлечения существующих таблиц db из удаленного сервера mechine (SQL SERVER). Фактически я не знаю, как это сделать. Следуя этому пути. Пожалуйста, исправьте меняНеинициализированная постоянная ошибка в 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 

таблица существует в БД BOdb является TRDeviceDetails .I созданные модели и контроллер с помощью команды

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

то, что мне нужно это, получить существующие таблицы из удаленного machine.How можно и почему эта ошибка возникает?

ответ

2

вы должны использовать

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

в генерируемый класс

class TrDeviceDetail < ActiveRecord::Base 

UPDATE:

Если имя таблицы не то, что следует конвенции, вы должны установить table_name явно

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

при попытке получить эту ошибку ................ ODBC :: Ошибка: S0002 (208) [Microsoft] [ODBC SQL Server Driver] [SQL Server] Недопустимое имя объекта 'tr_device_details' .: EXEC sp_executesql N'SELECT [tr_device_details]. * FROM [tr_device_details] ' – chinchu

+1

у вас необычное имя модели, поэтому могут возникнуть проблемы с подключением к базе данных. можете ли вы проверить имя таблицы в db для этой модели? – jvnill

+0

TRDeviceDetails - это существующая таблица в sql-сервере для удаления – chinchu

Смежные вопросы