我有一个Rails 3.0应用程序,我已经升级到3.1。当我转到Rails控制台并运行User.first时,我得到了这个输出。。。
irb(main):001:0> User.first
User Load (0.5ms) SELECT "users".* FROM "users" LIMIT 1
(0.1ms) SHOW search_path
User Indexes (1.0ms) SELECT distinct i.relname, d.indisunique, d.indkey, t.oid
FROM pg_class t
INNER JOIN pg_index d ON t.oid = d.indrelid
INNER JOIN pg_class i ON d.indexrelid = i.oid
WHERE i.relkind = 'i'
AND d.indisprimary = 'f'
AND t.relname = 'users'
AND i.relnamespace IN (SELECT oid FROM pg_namespace WHERE nspname IN ('"$user"','public') )
ORDER BY i.relname
User Indexes (0.4ms) SELECT c2.relname, i.indisunique, pg_catalog.pg_get_indexdef(i.indexrelid, 0, true)
FROM pg_catalog.pg_class c, pg_catalog.pg_class c2, pg_catalog.pg_index i
WHERE c.relname = 'users'
AND c.oid = i.indrelid AND i.indexrelid = c2.oid
AND i.indisprimary = 'f'
AND i.indexprs IS NOT NULL
ORDER BY 1
(Object doesn't support #inspect)
=>
irb(main):002:0> exit
ruby版本:红宝石1.9.3p-551
我知道他们是数据库中的记录,但我不明白这个错误意味着什么?
(对象不支持#inspect(
有人能给我指正确的方向吗?
所以这个解决方案很奇怪,可能还不能解决整个问题。事实证明,我不得不为我的/lib目录打开自动加载路径
class Application < Rails::Application
# startup the lib directory goodies
config.autoload_paths << "#{Rails.root}/lib"
config.autoload_paths += %W( lib/ )
这现在解决了(Object doesn't support #inspect)
错误消息
然而。。。
出现undefined local variable or method acts_as_userstamp for #<Class:0x000000046bef50>
的新错误消息。
这个方法出现在我的用户模型的第二行。。。
class User < ActiveRecord::Base
acts_as_userstamp
...
该方法在一个名为app/lib/model_modificationsrb
的文件中定义,该文件位于我的/lib目录中
所以现在我必须深入兔子洞,找出为什么这种方法没有被发现。我将在新的问题页面上发布一个关于这一新发现的问题。