2012-01-09 26 views
1

我有一個待辦事項列表,我基本上試圖讓用戶勾選一個複選框,並將其標記爲完整的Ajax但是我有一些真正的麻煩,知道如何指定我想編輯'任務'(在一個'list')在我的控制器中。Rails 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| %> 

即將@task替換爲task

我不知道這是否能解決您的問題,但至少這是一個明顯的錯字。

+0

嗨!謝謝,我沒有發現,但我仍然有同樣的問題。還有其他建議嗎? – 2012-01-09 20:22:48

0

在控制器中,當您說.find()時,您需要傳遞任務的ID。