Object 不支持 Rails 3.1 中的 #inspect



我有一个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目录中

所以现在我必须深入兔子洞,找出为什么这种方法没有被发现。我将在新的问题页面上发布一个关于这一新发现的问题。

相关内容

最新更新