2012-01-09 7 views
1

나는 할 일 목록이 있는데 기본적으로 사용자가 체크 박스를 체크하고 아약스로 완료했다고 표시하려고하지만 '과제'를 편집하는 방법을 아는 것이 진짜 문제가된다. '목록') 내 컨트롤러.레일 3 : 루프 내 양식?

현재 내 루프는 '목록'에 대한 모든 '작업'을 보여줍니다. 내 체크리스트 형태로 추가하려고 할 때 나는 오류를 얻을 : 그 '리스트'에 대한 모든 '작업'을 표시 할 그러나 나는 또한 허용 할 것을 선언하는 것이 최선의 방법

Couldn't find Task without an ID 

확실하지 않음 사용자가 해당 목록 내의 각 작업을 편집 할 수 있습니다.

<% @tasks.each do |task| %> 


<%= form_for task, :remote => true do |f| %> 
    <%= f.check_box 'complete', :class => 'submittable' %> 
    <%= f.label :complete %> 
<% end %> 


<tr><td><h3><%=task.description %></h3></td><%=task.complete%><td></td> 
    <td><%= link_to 'Edit Task',edit_list_task_path(@list, task), :id => "edit_#{task.id}",:class=>"btn info" %></td> 
    <td><%= link_to 'Delete Task', list_task_path(@list, task), :method => :delete, :confirm => "Are you sure?", :id => "delete_#{task.id}", :class=>"btn danger "%></td></tr> 

</tr> 

<%end%> 

그리고 내 컨트롤러 :

여기 내이다

def index 
    @tasks = @list.tasks 
    @task = @list.tasks.find() 
    @task.update_attributes params[:task] 

end 

업데이트 : 아래의 코멘트에 맞춰

만드는 변화. 다른 제안?

답변

1

당신은

<%= form_for task, :remote => true do |f| %> 

대신

<%= form_for @task, :remote => true do |f| %> 

필요 즉, @tasktask으로 대체하십시오.

이 방법으로 문제가 해결되었는지는 모르겠지만 적어도 눈에 띄는 오타입니다.

+0

안녕하세요! 고마워, 나는 그것을 발견하지 못했지만 나는 여전히 같은 문제를 겪고있다. 다른 제안? –

0

컨트롤러에서 .find()를 말하면 작업의 ID를 전달해야합니다.