找不到child_modelNameError

问题描述

| 我无法确定为什么在这里出现名称错误。我是DataMapper的新手,但尝试进行关联。任何帮助表示赞赏。 用户:
class User
  include DataMapper::Resource

  property :id,Serial,:key => true
  property :first_name,String
  property :last_name,String
  property :company,String
  property :city,String
  property :country,String
  property :mobile_number,Integer
  property :email_address,String
  property :shahash,String
  property :isRegistered,Boolean

  belongs_to :event,:required => true
end

DataMapper.auto_upgrade!
事件:
class Event
  include DataMapper::Resource

  property :id,:key => true
  property :name,String
  property :occuring,DateTime

  has n,:user
end

DataMapper.auto_upgrade!
    

解决方法

        我认为问题在于您在每个模型定义后都叫
DataMapper.auto_upgrade!
。在仅定义一个模型后调用它时,那里没有子模型。相反,您应该定义和/或要求所有模型,然后执行以下操作:
DataMapper.finalize      # set up all relationships properly
                         # and do a basic model sanity check
DataMapper.auto_upgrade! # create database table if it doesn\'t exist
    ,        在模型目录中添加一个初始化文件,然后将所有DataMapper.finalize语句移至该文件(即,从各个模型文件中删除finalize语句) app / models / init.rb
require_relative \'file_name\'
require_relative \'another_model_file_name\'

DataMapper.finalize
然后在您的应用程序文件中需要init文件
require_relative \'models/init\'
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...