Ruby on rails “如何处理错误”;不能';找不到id为0的模型;

Ruby on rails “如何处理错误”;不能';找不到id为0的模型;,ruby-on-rails,null,Ruby On Rails,Null,从我的实际数据库中抽象出来,我有Model1和Model2,Model1有很多Model2,Model2有很多Model1。在注册页面中,我有以下内容: = f.hidden_field :model2_ids 但是,当在数据库中没有现有model2的情况下进行注册时,会出现以下错误: "Couldn't find Model2 with id=0" 在参数中,您可以看到: "model2_ids"=>"[]", 我想它的计算结果为NULL,这就是为什么我会得到我所得到的错误。我怎样

从我的实际数据库中抽象出来,我有Model1和Model2,Model1有很多Model2,Model2有很多Model1。在注册页面中,我有以下内容:

= f.hidden_field :model2_ids
但是,当在数据库中没有现有model2的情况下进行注册时,会出现以下错误:

"Couldn't find Model2 with id=0"
在参数中,您可以看到:

"model2_ids"=>"[]",
我想它的计算结果为NULL,这就是为什么我会得到我所得到的错误。我怎样才能避开这件事

更新:

通过在视图中设置条件,我可以在没有现有model2或没有设置model2\u ID的注册中避免这个问题。model2_ID是通过邀请模型在控制器中设置的,在某些注册情况下,存在邀请,其中邀请模型指定model2。在一个示例中,我在参数中看到:

 "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'

这是什么原因造成的?

Model1的对象尚未保存到数据库中,那么如何获取属于Model1的Model2对象

如果您正在为用户生成表单

<% form_for @user do |f|%>
<% end %>

那么你可能需要一个类似下面的条件

unless @user.new_record?
  <%= f.hidden_field :model2_ids %>
end
除非@user.new\u记录?
结束

在控制器中,您可以签入控制器,但它会像 如果你的情妇看起来像

params[model_ids] = "" so query will be   if  params[model_ids] == ""
params[model_ids] = [""] so query will be   if  params[model_ids] == [""]
或者如果你的情妇看起来像\

params[model_ids] = [] so query will be   if  params[model_ids] == []
如果你的情妇长得像

params[model_ids] = "" so query will be   if  params[model_ids] == ""
params[model_ids] = [""] so query will be   if  params[model_ids] == [""]

现在,在控制器中,您可以给出任何条件或使用异常处理来处理此运行时错误

您可以发布用于创建关联的模型代码吗?成功登录后,您将在何处重定向用户?