我正在構建一個簡單的任務管理應用程序,並使用複選框指示任務是否完成。未更新項目屬性
這裏是代碼,我想出了:
<%= 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