Ruby on rails ActiveAdmin属于/拥有一个打破关系的模型之一的显示页面

Ruby on rails ActiveAdmin属于/拥有一个打破关系的模型之一的显示页面,ruby-on-rails,ruby,ruby-on-rails-4,associations,activeadmin,Ruby On Rails,Ruby,Ruby On Rails 4,Associations,Activeadmin,我有两个模型,一个是项目模型,另一个是项目联合模型,代码如下所示: class Project has_one :project_syndication end class ProjectSyndication belongs_to :project end ActiveAdmin.register Project, as: 'Offering' do end ActiveAdmin.register ProjectSyndication do belongs_to :o

我有两个模型,一个是项目模型,另一个是项目联合模型,代码如下所示:

class Project
  has_one :project_syndication
end


class ProjectSyndication
  belongs_to :project
end


ActiveAdmin.register Project, as: 'Offering' do

end

ActiveAdmin.register ProjectSyndication do
  belongs_to :offering, parent_class: Project
end
当我转到ProjectSyndication的显示页面时,此代码显示一个错误,如下所示:

undefined method `project_syndications' for #<Project:0x007fc309a972b0>  
因此,我可以推断,ActiveAdmin将此关联视为一个有很多关联的关联,并试图在找到一个项目的所有项目联合后找到项目联合,但这不会起作用

我在项目模型下采用以下方法解决了这个问题

def project_syndications
  ProjectSyndication.where(project_id: id)
end
这很好,但我觉得这不是正确的方法。我查看了ActiveAdmin文档,但没有找到太多。我问的是如何解决这个问题,或者这是否是ActiveAdmin的一个bug/功能


如果您有任何帮助,我们将不胜感激。您的问题很模糊。 也可以提供数据库迁移

我将检查以下(模糊猜测):

=>这表明您的数据库具有字段projects.project\u syndication\u id

=>也许试试“有很多”

ActiveAdmin.register Project, as: 'Offering' do; end;
=>案例产品与下面的产品

=>冗余代码?(取下它)


=>冗余代码?(去掉它)

你的问题很模糊。 也可以提供数据库迁移

我将检查以下(模糊猜测):

=>这表明您的数据库具有字段projects.project\u syndication\u id

=>也许试试“有很多”

ActiveAdmin.register Project, as: 'Offering' do; end;
=>案例产品与下面的产品

=>冗余代码?(取下它)


=>冗余代码?(移除)

嘿,谢谢你的回答。但我不确定你说的是什么,项目模型没有项目联合id,实际上是在项目联合模型中,它有一个项目id属性,表示一个项目有一个项目联合。正如您在这里看到的:。你提到的代码是ActiveAdmin代码,如果我删除它,ActiveAdmin将无法工作。如果你有syndications.project\u id,一个项目肯定会有很多syndication。。。也许这就是罪魁祸首?我们不需要一个有很多关系的项目,一个项目只有一个银团。为什么我会选择一个有很多关系的人?那么也许我会做一个项目。有一个(:辛迪加,:dependent=>:destroy)和辛迪加。属于(:Project)嘿,谢谢你的回答。但我不确定你说的是什么,项目模型没有项目联合id,实际上是在项目联合模型中,它有一个项目id属性,表示一个项目有一个项目联合。正如您在这里看到的:。你提到的代码是ActiveAdmin代码,如果我删除它,ActiveAdmin将无法工作。如果你有syndications.project\u id,一个项目肯定会有很多syndication。。。也许这就是罪魁祸首?我们不需要一个有很多关系的项目,一个项目只有一个银团。为什么我会选择has\u many关系?然后可能做项目。has\u one(:syndication,:dependent=>:destroy)和syndication。属于(:Project)我知道这是一个老问题,但你找到解决方案了吗?我遇到了同样的问题。我知道这是一个老问题,但你找到解决办法了吗?我遇到了同样的问题。
ActiveAdmin.register Project, as: 'Offering' do; end;
ActiveAdmin.register ProjectSyndication do; belongs_to :offering, parent_class: Project; end