0
埋め込みドキュメントの追加に問題があります。私は、ユーザーに埋め込まれているタグを追加しようとしています。埋め込みドキュメントが追加されていません
user.rb
class User
include Mongoid::Document
field :name
validates_presence_of :name
validates_uniqueness_of :name, :email, :case_sensitive => false
attr_accessible :name, :email, :password, :password_confirmation
embeds_many :tags
embeds_many :tasks
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
tag.rb
class Tag
include Mongoid::Document
field :name
embedded_in :user, :inverse_of => :tags
references_many :tasks
end
tags_controller.rb
def create
#@user = User.find(:first, :conditions => {:_id => "4d3ae09bf5c4930b2b000004"})
@user = current_user
@tag = Tag.new(params[:tag])
@user.tags << @tag
@tag.save
redirect_to @tag, :notice => "Tag created!"
end
私は新しいタグを作成しようとすると、これは、サーバーに出力されます。
Started POST "/tags" for 127.0.0.1 at 2011-02-18 13:46:03 -0500
Processing by TagsController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"6p+Jova7Hol2v5LRReSp2fhNJ967EwkeIzAWyrChQRE=", "tag"=>{"name"=>"general"}, "commit"=>"Create Tag"}
db['users'].find({:_id=>BSON::ObjectId('4d39cd63f5c4930708000001')}, {}).limit(-1) MONGODB
db['users'].update({"_id"=>BSON::ObjectId('4d39cd63f5c4930708000001')}, {"$push"=>{"tags"=>{"name"=>"general", "_id"=>BSON::ObjectId('4d5ebe6bf5c493554d000002')}}}) Redirected to
http://localhost:3000/tags/4d5ebe6bf5c493554d000002 Completed 302 Found in 5ms
問題の内容や開始場所はわかりません。実際には、ユーザーが見つかったように見えて、タグの更新が行われていますが、成功していません。
おかげ
モデル内のタグのクラスは、ユーザの内部に埋め込まれ
更新コマンドが正常に表示される...コントローラの完了後にユーザー文書の外観はどうなりますか? mongodb.logにエラーが表示されますか? – jared
私はユーザー文書をチェックしておらず、機能しています。私はタグのための別の "テーブル"を持っていて、それがそこにあると思った。それが実際に文書を埋め込んでいることはわかりませんでした。ありがとう。あなたが回答のコンセプトを説明したいなら、私はあなたに代理人を与えます。 –