在我的 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'
在您的用户模型中
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
检查办公室模型和表格是否已创建。如果这两个是创建的,它不会给出这种错误。