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數據庫,所以命名約定遠不如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。