【问题标题】:rails creating temporary objects with idsrails 创建带有 id 的临时对象
【发布时间】:2015-02-10 17:24:01
【问题描述】:

我正在尝试找到解决上述问题的方法。

基本上,我有一个模型“工作”,它拥有并属于许多联系人和位置。当用户开始创建新工作时,他们应该能够开始将位置和联系人添加到新记录中。问题是当我尝试保存记录时。用户如何将位置和联系人记录与还没有 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 启动虚拟记录?

也许我在这一切上都偏离了滑雪道,但即使是一些方向也会非常感激。

【问题讨论】:

    标签: mysql ruby-on-rails associations simple-form


    【解决方案1】:

    将用户 ID 分配给作业。然后,在为用户寻找工作时做

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多