1

在我的 rails 应用程序中,当存在关联时,我无法保存模型对象。我正在使用 mongo 作为数据库。简要说明:

我有一个模型对象,

@obj1 = User.create(name: "name1")

当我做@obj1.save 时,它​​工作正常。现在我添加了一个关系说,

has_many :offices

然后我尝试用新条目保存同一个对象。

@obj1 = User.create(name: "name2")

我收到一个错误

 /gems/activesupport-3.2.9/lib/active_support/inflector/methods.rb:230:in `block in constantize'
 gems/activesupport-3.2.9/lib/active_support/inflector/methods.rb:229:in `each'

编辑:

完整的错误跟踪:

NameError: uninitialized constant Office
            from /home/workspace/.rvm/gems/ruby-1.9.3-p286@cv_app/gems/activesupport-3.2.9/lib/active_support/inflector/methods.rb:230:in `block in constantize'
            from /home/workspace/.rvm/gems/ruby-1.9.3-p286@cv_app/gems/activesupport-3.2.9/lib/active_support/inflector/methods.rb:229:in `each'
            from /home/workspace/.rvm/gems/ruby-1.9.3-p286@cv_app/gems/activesupport-3.2.9/lib/active_support/inflector/methods.rb:229:in `constantize'
            from /home/workspace/.rvm/gems/ruby-1.9.3-p286@cv_app/gems/activesupport-3.2.9/lib/active_support/core_ext/string/inflections.rb:54:in `constantize'
4

2 回答 2

0

检查office模型和表是否已经创建。如果这两个是创建的,它不会给出这种错误。

于 2012-12-03T13:05:03.910 回答
0

在您的用户模型中

class User < ActiveRecord::Base
  has_many :offices 
end

在您的办公室模型中

class Office < ActiveRecord::Base
  belongs_to :user
end

现在,试试这个

@user = User.new
@user.name = "xyz"
@user.save

对于关系

@user = User.offices.build
于 2012-12-03T11:35:19.160 回答