我正在构建一个简单的任务管理应用程序,并使用复选框指示任务是否完成。未更新项目属性
这里是代码,我想出了:
<%= check_box_tag "id", "id", task.done,
:onclick => remote_function(
:update => "task",
:url => { :action => :update, :controller => :tasks, :id => task.id },
:with => "'task[done]=true'",
:complete => "alert('hi')" ) %>
它确实打印复选框,它并检查它会自动根据task.done的状态。但是,当我触发onclick并观看日志时,更新方法被调用,但完成的信息未在任务中更新。
这里是任务控制器上更新代码:
def update
@task = Task.find(params[:id])
@stream = Stream.find(@task.stream_id)
respond_to do |format|
if @task.update_attributes(params[:task])
format.html { redirect_to(@stream, :notice => 'Task was successfully updated.') }
format.json { head :ok }
else
format.html { render :action => "edit" }
format.json { render :json => @task.errors, :status => :unprocessable_entity }
end
end
end
=真没有在任务记录更新为什么呢?
非常感谢球员
你的参数哈希在你的更新方法中看起来像什么?此外,您应该从内嵌JavaScript移开,并使用不显眼的JavaScript代替。 http://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/ – mbreining 2011-04-26 03:17:55