2017-08-22 5 views
0

マイEXPENSE_CATEGORIESコントローラです:Railsはレコードを削除 - paramが不足しているか、値が空の

def delete 
     @expense_category = ExpenseCategory.find(params[:id]) 
    end 

    def destroy 
    expense_category = ExpenseCategory.find(params[:id]).destroy 
    flash[:notice] = "ExpenseCategory '#{expense_category.description}' destroyed successfully." 
    redirect_to(expense_categories_path) 
    end 

マイ削除ビュー:

<%= form_for @expense_category do |f| %> 
<%= submit_tag("Delete Expense Category", class:"button alert") %> 

マイEXPENSE_CATEGORIESテーブル:

class CreateExpenseCategories < ActiveRecord::Migration[5.1] 
    def change 
    create_table :expense_categories do |t| 
     t.string :description 

     t.timestamps 
    end 
    end 
end 

マイルート:

resources :expenses 
    resources :expense_categories 

    get ":controller/:action/:id" 
私はレコードを削除しようとするたびに

私はエラーパラメータが

{"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"dWPl0kJaoogDIk1vnTjK8+vvmf7MbI+lzpuRdQ0d6sBZJ+3eFZBk1GdOf+su46d+129niW9wH91YPi9z7PKmaQ==", "commit"=>"Delete Expense Category", "id"=>"1"} 

あるのはなぜ空expense_categoryあるページで

ActionController::ParameterMissing in ExpenseCategoriesController#update

param is missing or the value is empty: expense_category 

を取得しますか?

答えて

2

ActionController :: ExpenseCategoriesController#アップデートでParameterMissing

paramは存在しないか、値が空である:expense_category

要求が代わりにdestroyupdateアクションに送信され、そのエラーになっています。 destroyメソッドにリクエストを送信するには、method: :deleteを指定する必要があります。

<%= form_for @expense_category, method: :delete do |f| %> 
+0

ご回答ありがとうございます。それは要求を正しく送信するようですが、#<#:0x007fce2824b708> – Catmal

+0

のための未定義のローカル変数またはメソッド 'delete 'を取得しました。私は、部分的な_form.html.erbを呼び出すビューdelete.html.erbを持っています。フォームにない削除ビューにあなたのソリューションを入力しました。 – Catmal

+0

@Catmal申し訳ありませんが、タイプミスがあります。それは 'method::delete'です – Pavan

関連する問題