簡體   English   中英

Rails-破壞控制器中的動作

[英]Rails - Destroy action in Controller

我的模型中有學生,用戶(老師)和課程。 用戶的has_many課和老師的has_many課。 當然,每節課都屬於用戶和學生。

給定此數據關聯后,如何使用銷毀操作刪除課程(由按鈕調用)?

def destroy
    Lesson.destroy(params[:id])
    redirect_to lessons_path
end

我的架構

  create_table "lessons", force: true do |t|
    t.integer  "student_id"
    t.integer  "user_id"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.boolean  "cancelled"
    t.boolean  "late"
    t.boolean  "reschedule"
    t.integer  "room"
    t.string   "day"
    t.datetime "start_time"
    t.datetime "end_time"
  end

調用動作的按鈕

<span><%= link_to 'Destroy', lessons_path, class: 'btn btn-danger' %></span>

您可能在路線定義中使用了resources :lessons (默認情況下由rails scaffold生成),並且將destroy動作映射到DELETE http動詞,因此您應該使用正確的動詞(通過:method )和正確的url(傳遞Lesson實例) ):

link_to 'Destroy', lesson_path(@lesson), class: 'btn btn-danger', method: :delete

如果您已將路線定義為resources :lessons ,則可以使用以下鏈接破壞特定lesson

<span><%= link_to 'Destroy', lesson_path(lesson), method: :delete, class: 'btn btn-danger' %></span>

lesson (在lesson_path(lesson) )是Lesson模型的實例。 另外,您需要在鏈接上使用method: :delete指定HTTP方法DELETE ,以便鏈接以RESTful方式路由到正確的destroy動作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM