2011-10-26 42 views
0

私はレールと、以下しようとすると...ここに私の頭を悩ま:Railsのエラー:オブジェクトがサポートしていません#inspect

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を通してこれをやろうとしています。サポートのみが含まれます。

私はこのエラーの原因を完全にはわかりません。私はこれが旧式のMSSQLデータベースであるという事実のためかもしれないと思うので、命名規則はレールが好きなもののどこにもありません。しかし、私は特定の問題が何であるかについて迷っています。

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 

ことで次のよう

モデルは、問題を再現するために検証される最小までストリッピングし、です。ユーザーモデルには検索と認証のための他のコードがありますが、私はすべてのことを確認して、この問題に影響を与えないことを確認しました。私はこれに立ち往生している、どんな助けもありがとう。アプリはactiverecord-sqlserver-adapterとtiny_tdsを使って、レール3.1を使用しています。

答えて

0

解決しよう...

:FOREIGN_KEY => "ユーザーID"、ではない:FOREIGN_KEY => "ユーザーID"

何らかの理由で、ケースの違いは、非積極的なロードを実行するときにレールを気にしていないようですまたは.joinsを使用しますが、.includesを使用して行います。 Doh。

関連する問題