我是Rails开发的新手,我也从MongoDB开始。
我一直在关注这个关于rails复杂表单的Railscast教程,但是我使用mongodb作为我的数据库。我可以用它的子代插入文档并将数据检索到编辑表单中,但是当我尝试更新它时,会出现此错误
false的未定义方法“assert\u valid\u keys”:false类
这是我的实体类

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

有人知道这里发生了什么吗?谢谢

最佳答案

你的任务班是什么样子的?是否使用embeddeddocument?如果没有,您是否在其中声明了项目id的密钥?
更新-这是由于save(false),dosave(:validate => false)和您应该设置。

关于ruby-on-rails - 使用MongoMapper的Rails和MongoDB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2831644/

10-11 17:28
查看更多