2015-02-10 28 views
0

我正试图找到解决上述问题的方法。使用ID创建临时对象的导轨

基本上,我有一个模型'工作',它有和属于许多联系人和位置。当用户开始创建新作业时,他们应该能够开始向新记录添加地点和联系人。问题是当我尝试保存记录时。用户如何将位置和联系人记录关联到还没有ID的工作记录?该错误消息我上创建动作是这样的,

对于每一个接触我尝试添加我得到一个

Validation failed: Job contacts is invalid 

我的猜测来自于一个事实作业ID不当时存在的任务。

通过控制器传递的参数都在job_params中,这是我希望如何接收它们的参数。 SimpleForm协助了这一功能,该功能为habtm记录提供了方便的“关联”方法。如果可能的话,我想使用简单的形式(不使用field_tags等)将所有内容保留在表单对象中。因此,例如,联系人字段看起来像这样。

=f.association :contacts, collection: job.client.contacts, as: :check_boxes 

那么我的选择是什么?有什么我可以做不同的事情吗?

我曾考虑以下几点:

  1. 在新的行动创造一个记录,并用标志设置,直到必要的字段已填充陈述其无效。在这一点上,它可以成为一个“正确”的记录,但这感觉就像它有可能变得相当混乱。

  2. 使用STI开始虚拟记录?

也许我走的滑雪道与所有这一切,但即使是某些方向将不胜感激。

回答

0

将用户标识分配给作业。然后,在为用户寻找工作时,请执行以下操作:

jobs = Job.where("user_id = ?", user.id)