2010-03-13 182 views
2

[已更新]我有一個任務模型,它具有:完成的布爾屬性。如果我點擊它,我希望它執行'完成'方法。主要的問題是我在第一個被忽略之後會在列表中顯示一系列複選框並在後面顯示覆選框。該方法從未被調用給定的任務/複選框組合。複選框更新屬性

我有這個代碼塊在我看來:

<% current_user.tasks.each do |t|%> 
     <% if t.completed == false %> 
      <%= check_box_tag :completed, true, checked = false %> 
      <%= observe_field :completed, :url => { :controller => 'tasks', :action => :finish , :id => t.id }, 
       :frequency => 0.25, 
       :update => :completed, 
       :with => true 
      %> 

和我的終點方法是這樣的:

def finish 
     @task = Task.find(params[:id]) 
     new = {:completed => true} 
     @task.update_attributes(new) 
     render :update do |page| 
     page.replace_html "taskListing", :partial => 'home/task_listing' 
end 
+0

你在找什麼r發佈到完成操作的JavaScript還是您有其他問題? – Addy 2010-03-13 16:55:34

+1

我在上面添加了一些信息。基本上,如果我有多個複選框(在do循環中創建)...第一個之後的複選框被忽略。 – Jeff 2010-03-13 21:59:54

回答

4

沒關係我想通了:

這就是:

<% current_user.tasks.each do |t|%> 
      <% if t.completed == false %> 
       <%= check_box_tag t.id, true, checked = false %> 
       <%= observe_field t.id, :url => { :controller => 'tasks', :action => :finish , :id => t.id }, 
        :frequency => 0.25, 
        :update => :completed, 
        :with => true 
       %> 
      <%= link_to t.title , t %> - <%= t.due_date.strftime("%B %d, %Y %X %p")%>