[更新了一下]我有一个具有:completed布尔属性的Task模型。如果我点击它,我希望它执行'finish'方法。主要问题是我在列表中显示一系列复选框,并在忽略第一个复选框后显示后续复选框。永远不会为给定的任务/复选框组合调用该方法。
我认为这块代码很多:
<% 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 :(得分: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")%>