2015-08-25 38 views
0

我试图实现与外键的has_manybelongs_to关系。使用foreing_key时找不到ID没有ID的记录

模板

belongs_to :project

项目

has_many :templates 
belongs_to :coordinator, foreign_key: :coordinator_id, class_name: 'Person' 

has_many :projects

我能够做

template = Template.new 
template.project = Project.new 
template.project # my empty project is showed 

但这不起作用

project = Project.new 
project.coordinator = Person.new # Everything is ok until here 
project.coordinator # ActiveRecord::RecordNotFound: Couldn't find Person without an ID 

我不知道我做错了,也许我需要指定主键在某处,但我无法弄清楚。

我使用Rails 4

+0

尝试从项目的'belongs_to'字段中删除'foreign_key :: coordinator_id',尝试将has_many:projects项目更改为has_many:projects :: as =>:coordinator' –

+0

。 –

+0

这些解决方案都不起作用。 – Wagner

回答

0

亲临现场,

has_many :projects, foreign_key: :coordinator_id 

目前它希望找到在项目表中为person_id。

哦,我也会反过来对这些关联。

+0

已经尝试过,不幸的是不起作用。 – Wagner

+0

好吧 - 它可能无法解决特定问题,但您需要它。 –