2014-05-19 2 views
-1

학생, 사용자 (교사) 및 수업이 내 모델에 있습니다. 사용자 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> 
+0

무엇이 작동하지 않습니까? 오류를 공유 할 수 있습니까? 또한'routes.rb'에서'lessons'의 경로를 공유하십시오. –

답변

2
당신은 아마 당신의 경로 정의에 resources :lessons를 사용

를 호출 버튼 (레일에서 기본적으로 스캐 폴딩 생성) 및지도 조치를 파괴하는 것을 DELETE http 동사로 바꾸려면 적절한 동사 (:method을 통해)와 올바른 URL (전달)을 사용해야합니다. 10 예) :

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

예, 내 경로가 맞았다 고 가정하십시오. 왜 그것은 메소드에 매핑 되는가? : destroy 대신에 삭제? 이것은 기본적으로 REST입니까? 안녕하십니까, 제 질문에 답변 해 주신 모든 분들께 진심으로 감사드립니다 – camdixon

+0

다음 링크를 확인하십시오 : http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions – markets

1

당신이 resources :lessons로 정의 경로를 제공, 당신은 파괴 아래의 링크를 사용할 수있는 특정 lessonlesson_path(lesson)에서 lesson은() Lesson 모델의 인스턴스

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

. 또한 HTTP 메서드 DELETE을 링크에 method: :delete을 사용하여 지정하여 링크가 올바른 destroy 동작으로 RESTful 방식으로 라우팅되도록해야합니다.

관련 문제