Ошибка Rails: объект не поддерживает #inspect - PullRequest
0 голосов
/ 26 октября 2011

Здесь я почесал голову ... Если я попробую следующее с рельсами:

User.limit(25).includes([:addresses])

Я получу:

 User Load (109.5ms)  EXEC sp_executesql N'SELECT TOP (25) [User].* FROM [User]'
 Address Load (112.3ms)  EXEC sp_executesql N'SELECT [Address].* FROM [Address] WHERE [Address].[UserId] IN (N''1'', N''2'', N''3'', N''6'', N''7'', N''8'', N''9'', N''11'', N''12'', N''16'', N''17'', N''18'', N''19'', N''20'', N''21'', N''22'', N''24'', N''25'', N''26'', N''27'', N''28'', N''29'', N''30'', N''31'', N''34'')'
(Object doesn't support #inspect)
 =>  

Если я вместо этого сделаю

@users = User.limit(25).joins([:addresses])

это работает нормально, однако внутреннее соединение - это не то, о чем я не хочу упомянуть. Я на самом деле пытаюсь сделать это с помощью sunspot_rails, который поддерживает только include.

Я не совсем уверен, что с этим происходитошибка.Я подозреваю, что это может быть связано с тем фактом, что это устаревшая база данных MSSQL, поэтому соглашения об именах далеко не соответствуют тому, что нравится rails.Однако я в растерянности относительно того, что является конкретной проблемой.

Модели следующие, урезанные до минимума, который проверяется для воспроизведения проблемы:

class User < ActiveRecord::Base
  set_table_name "User"
  set_primary_key "ID"

  has_many :addresses, :foreign_key => 'UserId'
end

class Address < ActiveRecord::Base
  set_table_name "Address"
  set_primary_key "ID"
  belongs_to :user
end

Вот и все.В пользовательской модели есть другой код для поиска и аутентификации, но я прокомментировал, что все, что было проверено, не влияет на эту проблему.Я застрял на этом, любая помощь приветствуется.Приложение использует rails 3.1, с activerecord-sqlserver-adapter и tiny_tds.

1 Ответ

0 голосов
/ 26 октября 2011

решаемые ...

: foreign_key => "UserID", а не: foreign_key => "UserId"

По какой-то причине различие в регистре, похоже, не беспокоит рельсы при загрузке без усилий или при использовании .joins, а при использовании .include. Doh.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...