RailsとMongoMapperとMongoDBの
-
26-09-2019 - |
質問
私はRailsの開発に新たなんだと私はまた、MongoDBのを始めてます。
私は、次のされています。この Railscast のチュートリアルと複雑なフォームについてRailsは私は私のデータベースとしてのMongoDBを使用しています。私はそれのチャイルズで文書を挿入し、編集フォームにデータを取り出す問題のないんだけど、私はそれを更新しようとすると、私は
このエラーを取得します偽のための未定義のメソッド `assert_valid_keys':FalseClassの
これは私のエンティティクラスである
class Project
include MongoMapper::Document
key :name, String, :required => true
key :priority, Integer
many :tasks
after_update :save_tasks
def task_attributes=(task_attributes)
task_attributes.each do |attributes|
if attributes[:id].blank?
tasks.build(attributes)
else
task = tasks.detect { |t| t.id.to_s == attributes[:id].to_s }
task.attributes = attributes
end
end
end
def save_tasks
tasks.each do |t|
if t.should_destroy?
t.destroy
else
t.save(:validate => false)
end
end
終了 終了
class Task
include MongoMapper::EmbeddedDocument
key :project_id, ObjectId
key :name, String
key :description, String
key :completed, Boolean
belongs_to :project
attr_accessor :should_destroy
def should_destroy?
should_destroy.to_i == 1
end
end
んの誰もがここで起こっていただきました!を知っていますか?おかげ
解決 2
EmbeddedDocumentからドキュメントへのタスクのエンティティを変更、および削除 validates_associated:プロジェクトのタスクは、それが今、更新作業追加しています プロジェクトの更新からタスクを削除ます。
助けをx1a4とジョンNunemakerのおかげでたくさんの:-)
他のヒント
のようなあなたのTaskクラスを見て何?それはEmbeddedDocumentを使用していますか?そうでない場合、あなたはそれでPROJECT_IDのキーを宣言したのですか?
アップデート - 。それはsave(false)
を行い、save(:validate => false)
によるだとあなたが設定する必要があります。
所属していません StackOverflow