2011-05-09 42 views
2

我試圖更改另一個字段更改時選擇語句的值。rails jquery formtastic partial => undefined method'inputs'

這是我的代碼:

表(_form.html):

<%= semantic_form_for [:projects,@projectmilestone], :remote => true do |form| %> 

    <%= form.semantic_errors :state %> 
    <%= form.inputs do %> 
     <%= form.input :name, :as => :string%> 
     <%= form.input :description, :as => :text%> 
     <%= form.input :department_id, :as => :select, :collection => Department.all, :wrapper_html => { :class => "submittable" }%> 
     <%= form.input :custom, :as => :hidden%> 
     <%= form.input :projectcapstone_id , :as => :hidden %> 
     <div id="stakeholders"> 
     <%=render :partial => "stakeholders_form", :locals => { :form => form }%> 
     </div> 
     <%= form.input :statusweight, :as => :numeric%> 
     <%= form.input :ratingweight, :as => :numeric%> 


    <% end %> 

    <%= form.submit "Submit" %> 

<% end %> 

部分與現場進行更新:

<% unless @projectmilestone.department_id.nil? %> 
    <% form.inputs :partial do %> 
    <%= form.input :user_id , :as => :select, :collection => @users %> 
    <% end %> 
<% end %> 

jQuery的功能在我的application.js文件中:

$('.submittable').live('change', function() { 
$(this).parents('form:first').submit(); 
return false; 
}); 

Co ntroller:在我的意見

def update 
    @projectmilestone = Projectmilestone.find(params[:id]) 
    @users= User.where("department_id = ?",@projectmilestone.department_id) unless @projectmilestone.department_id.nil? 
    respond_to do |format| 
     if @projectmilestone.update_attributes(params[:projectmilestone]) 
     format.js {render :layout => false} 
     end 
    end 
    end 

update.js.erb文件:但是通過JavaScript的加載時,我得到以下錯誤在第一個頁面加載罰款

$('#projectmilestone_department_id').css("color","red"); 
$("#stakeholders").replaceWith("<%= escape_javascript(render :partial => "stakeholders_form", :locals => { :form => form }) %>"); 

到的部分負荷:

ActionView::Template::Error (undefined method `inputs' for #<String:0x00000117e81940>): 
    1: <% unless @projectmilestone.department_id.nil? %> 
    2: <% form.inputs :partial do %> 
    3:  <%= form.input :user_id , :as => :select, :collection => @users %> 
    4: <% end %> 
    5: <% end %> 
    app/views/projects/projectmilestones/_stakeholders_form.html.erb:2:in `_app_views_projects_projectmilestones__stakeholders_form_html_erb__1391421669166525649_2348024640__38554949321784' 
    app/views/projects/projectmilestones/update.js.erb:4:in `_app_views_projects_projectmilestones_update_js_erb__638343879728010384_2348034340_1083018837200874056' 
    app/controllers/projects/projectmilestones_controller.rb:88:in `block (2 levels) in update' 
    app/controllers/projects/projectmilestones_controller.rb:86:in `update' 

JavaScript UJS循環也可以正常工作,因爲當我更改department_id字段時,css更改爲紅色。

我想這個錯誤與當地人有關,但我不知道是什麼。

請幫忙!!!

Thx,

Nicolas。

回答

0

當您調用update.js.erb時,您沒有form對象,因此這會失敗。

也許你可以看看部分產生的HTML然後重寫它,以@projectmilestone@users作爲參數。

你的更新方法有這兩個參數可用,所以應該工作。

相關問題