2014-02-12 28 views
0

我有一個應用程序,我在這些任務下創建任務和子任務。這些新的子任務使用ajax創建,因此我不需要刷新頁面。所以現在每個子任務也都有一個與之相關的引導模式。模態具有描述形式,它更新子任務的描述字段。使用ajax更新rails中的子任務描述的錯誤

的問題是,這是throuh阿賈克斯創建的所有子任務,他們描述我不能夠更新,我得到一個錯誤在說沒有路由匹配的子任務/:ID,但是當我刷新頁面,做同樣的事情再次,它的作品。

我無法弄清楚爲什麼會發生這種情況。

下面是代碼子任務/ descform

  <%=subtask.description %><br> 
       <a data-id='<%=subtask.id %>' href="#" id='editdesc_<%=subtask.id %>'>Edit description...</a> 
        <div class="subtaskdescform" id="subtaskdesform_<%=subtask.id %>"> 
        <%=form_for subtask,:remote=>:true,:method => :put do |f| %> 
        <%= f.text_area :description,rows:'5',cols:'12',:class=>'myarea'%> 
        <%= f.submit "save",class:'btn btn-success col-md-4' %> 
        <a data-id='<%=subtask.id %>' href="#" class="myclose"><i class="fa fa-times fa-lg" style="margin:10px auto;"></i></a> 
        <% end %> 
        <script type="text/javascript"> 
        $('.mydes > a').click(function(e){ 
      $('#subtaskdesform_' + $(this).data('id')).show(1000); 
      e.preventDefault(); 
     }); 
     $('.myclose').click(function(e){ 


      $('#subtaskdesform_'+ $(this).data('id')).hide(1000); 
      e.preventDefault(); 
     }); 
     </script> 



       </div> 

這裏是update.js代碼

$( '#mydes _' + < %[email protected]%>)。HTML(」 <%= j(render partial:「subtasks/descform」,locals:{subtask:@subtask})%>');

這裏是我的更新動作

   def update 

    @subtask=Subtask.find(params[:id]) 
    respond_to do |format| 
     if @subtask.update_attribute(:description,params[:subtask][:description]) 
      format.html{redirect_to @project} 
      format.js 
     else 
      render new 
     end 
    end 


end 

回答

0

你有你的窗體的方法 「PUT」:

form_for subtask, :remote=>:true, :method => :put 

我認爲你必須檢討路線。看來,在路線subtask的方法是「GET」,但在表單中你要求「放」。檢查子任務路徑方法使用:

rake routes 

變化:方法=>:投入:獲得

+0

我居然想出解決方案,它是怎麼把一些Ajax的issue.Solved它和它的做工精細now.Anyways感謝您的幫助 –

+0

歡迎大哥! – Ghazi