我一直收到错误
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 as
<%= 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 %>
如果我能解决这个错误,我会很高兴获得任何建议:)感谢Tom
答案 0 :(得分:0)
您可以尝试使用.where
代替find
吗? find
如果找不到指定的Exception
,则会id
。或者,您可以使用find_by_id
,如果找不到您指定的id
的对象,则会返回nil。
编辑:
where
会为您提供一个大小为1的数组,如果您只是给它1 id
,或者如果找不到它则为空数组
find_by_id
会为您提供指定ID的对象,如果您无法找到该对象,则为nil