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

ユーザーモデルで

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 に答える
0

オフィスモデルとテーブルが作成されているか確認してください。これら 2 つが作成されていれば、この種のエラーは発生しません。

于 2012-12-03T13:05:03.910 に答える