0

我不断收到错误

Couldnt find <object> without an ID

我要做的就是让我的用户更新他们的联系人信息。

目前,我在控制器中对编辑和更新的定义是:

def edit
 @contact = current_user.contacts.find(params[:id])
end

def update
 @contact = current_user.contacts.find(params[:id])

 if @contact.update_attributes(params[:contact])
   redirect_to @contact
 else
   render action: "edit" 
end 
end

在我看来,有一个表单调用对象@contact

<%= form_for (@contact) do |f| %>
<div class = "name-field">
    <%= f.label :name, f.text_field :name %>
</div>

<div class = "company-field">
    <%= f.label :company, f.text_field :company %>
</div>

<div class = "email-field">
    <%= f.label :email, f.text_field :email %>
</div>

<div class = "phone-field">
    <%= f.label :phone, f.text_field :phone %>
</div>

<div class = "mobile-field">
    <%= f.label :mobile, f.text_field :mobile %>
</div>  

<div class="actions"><%= f.submit "Update" %></div>
<% end %>

获得有关如何解决此错误的任何建议会很棒:)谢谢汤姆

4

1 回答 1

0

您可以尝试使用.where而不是find. 如果找不到指定find的,将引发。或者,如果找不到具有您指定的对象,您可以使用 which 将返回 nil。Exceptionidfind_by_idid

编辑:

  • whereid如果你只是给它 1或一个空数组,如果它找不到它会给你一个大小为 1的数组

  • find_by_id要么给你指定 id 的对象,要么nil如果你找不到它就找不到对象

于 2012-05-01T17:42:43.383 回答