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 %>

このエラーを修正する方法についてアドバイスをいただければ幸いです :) Tom に感謝します

4

1 に答える 1

0

.whereの代わりに使ってみませんかfind?指定されたものが見つからない場合は を発生させfindます。または、指定した を持つオブジェクトが見つからない場合は、nil を返す which を使用できます。Exceptionidfind_by_idid

編集:

  • whereサイズが 1 の配列が返されるか、サイズが 1 の場合は配列が返され、id見つからない場合は空の配列が返されます

  • find_by_id指定されたIDを持つオブジェクトを提供するか、オブジェクトがnil見つからない場合は

于 2012-05-01T17:42:43.383 に答える