从我的实际数据库中抽象出来,我有 Model1 和 Model2 以及 Model1 has_and_belongs_to_many Model2 和 Model2 has_and_belongs_to_many Model1。在注册页面中,我有以下内容:
= f.hidden_field :model2_ids
但是,在数据库中没有现有模型 2 的情况下进行注册时,我收到以下错误:
"Couldn't find Model2 with id=0"
在参数中,您可以看到:
"model2_ids"=>"[]",
我想这评估为 NULL,这就是我得到错误的原因。我怎样才能解决这个问题?
更新:
通过在视图中设置条件,我可以通过没有现有模型 2 或没有设置模型 2_id 的注册来避免这个问题。model2_ids 是通过邀请模型在控制器中设置的,并且在某些注册情况下存在邀请,其中邀请模型指定了模型 2。在一个示例案例中,我在参数中看到:
"model2_ids"=>"[1]",
但是,我得到了同样的错误,并且从服务器日志中得到了这个输出:
Invitation Load (1.2ms) SELECT "invitations".* FROM "invitations" WHERE "invitations"."token" = '80c98940448829e7edc623f9886e6930434e245c' LIMIT 1
Model2 Load (51.8ms) SELECT "model2s".* FROM "model2s" WHERE "model2s"."id" = $1 LIMIT 1 [["id", 0]]
Completed 404 Not Found in 222ms
ActiveRecord::RecordNotFound (Couldn't find Listing with id=0):
app/controllers/registrations_controller.rb:12:in `create'
这是什么原因造成的?