これは完全に機能していましたが、何が起こったのかわかりません。
エラーは次のとおりです。
ActiveRecord::RecordNotFound at /status_updates/92
Couldn't find User with id=92
と
ActiveRecord::RecordNotFound at /status_updates/delete_all
Couldn't find User with id=delete_all
何が起こるかというと、多くのステータス更新があるユーザーがいます。ここでの92は、このユーザーに属するステータス更新92を参照する必要があります。
私はこれに直接関連するコードを変更していないので、コーヒースクリプトで行おうとした変更と関係があるのではないかと思います。(gemファイルから削除してbundle installを実行した後、削除せずに実行することにしたので、gemファイルに戻し、bundle installを再度実行しました...これで完了です。)
とにかく、show.htmlにいて、いずれかの削除ボタンをクリックすると、エラーが発生します。単一のstatus_updateの場合はdelete_allまたはdeleteのいずれか。
これが、私がまったく変更しなかったこれらすべてのコントローラーメソッドです。
def show
@user = User.find(params[:id])
@status_updates = @user.status_update
end
def destroy
@status_update.destroy
flash[:success] = "Status update deleted!"
redirect_to status_update_path(current_user.id)
end
def delete_all
@all_status_updates = current_user.status_update
@all_status_updates.delete_all
flash[:success] = "All status updates deleted!"
redirect_to status_update_path(current_user.id)
end
私のコンソールでは、このユーザーを検索して、ステータスの更新を確認できます。ステータスの更新は、期待どおりにすべて表示されます。これは良いことです。
しかし、ActiveRecordはそれらすべてを突然見つけることができませんか?
そうそう..これがdelete_allボタンのstatus_updatesに関連する私のgemファイルです
resources :status_updates do
collection do
delete :delete_all
end
end
削除ボタンは次のようになります。
<%= link_to "delete", status_update, method: :delete %>
<%= link_to "Reset Log", delete_all_status_updates_path, method: :delete, data: { confirm: "Are you sure? Once this log is reset there is no going back!"}%>
私はそれらをそこに置いて、彼らの道を示しました。
これにより、セキュリティで保護されていない状態で実行する代わりに、テストを記述してすべての作業をgitにプッシュするように教えられます:/
ありがとう!