2013-05-18 1 views
1

작업 관리 응용 프로그램 사용자로서 작업의 "완료 됨"링크를 클릭하여 완료된 작업의 해상도를 기록하고 싶습니다.AJAX를 통해 레일스 3에서 간단한 링크 (link_to)로 모델 속성 업데이트

레일즈 3 방식의 UJS (Unobtrusive JavaScript)를 사용하여 AJAX 요청이되고 싶습니다. 나는 꽤 오랫동안 이것을 디버깅 해왔다. 그래서 어떤 도움도 크게 감사 할 것이다. 내 작업 컨트롤러의 업데이트 방법 여기

<%= link_to "Completed", task_path(:id => task.id, :resolution => "completed"), :remote => true, :method => :put %> 

을 그리고있다 : 여기

내가보기 내에서 제작하고있는 LINK_TO 호출입니다

class TasksController < ApplicationController 
    respond_to :js 

    def update 
    @task = Task.find(params[:id]) 
    @task.update_attributes(params[:task]) 
    respond_with(@task) 
    end 
end 

크롬의 개발 도구를 사용하여 네트워크 트래픽을보고 그 put/put 요청이 URL 매개 변수 (tasks/{: id}? resolution = completed)를 포함하여 올바른 URL에 생성되었지만 미리보기에 다음 오류 메시지가 표시됩니다.

Template is missing 

Missing template tasks/update, application/update with {:locale=>[:en], :formats=>[:js, :html], :handlers=>[:erb, :builder, :coffee]}. 

Searched in: * "C:/Documents and Settings/Corey Quillen/My Documents/Software Engineering/Projects/Cleaner Card/cleaner_card/app/views" 

답변

0

update.js.erb에 업데이트 방법의 응답을 처리해야합니다.

app/views/tasks/update.js.erb에 파일을 배치하십시오.

+0

응답 해 주셔서 감사합니다. 그 오류를 없애 버렸지 만 속성은 여전히 ​​데이터베이스에서 업데이트되지 않습니다. 컨트롤러에서 뭔가를 변경해야합니까? –

+0

컨트롤러에서 params를 디버깅 해보십시오. 컨트롤러에 전달 된 매개 변수를 붙여 넣을 수 있습니까? – varunvlalan

+0

나는 속성을 업데이트하기 위해 숨겨진 양식 필드에 숨겨진 양식을 삽입하기로 결정했습니다. 당신의 도움을 주셔서 감사합니다. –

2

당신은 해상도 작업의 속성을 만들 필요가 - 그것은 업데이트됩니다 : 레일 4에서

<%= link_to "Completed", task_path(:id => task.id, "task[resolution]" => "completed"), :remote => true, :method => :put %> 

은 - 선호하는 방법은 다음과 같습니다 패치를 업데이트를.