2011-05-09 1 views
2

다른 필드가 변경되면 select 문의 값을 업데이트하려고합니다.rails jquery formtastic partial => 정의되지 않은 메소드 '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 %> 
내 application.js 파일

jQuery를 기능 :

$('.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 파일 : 자바 스크립트를로드 할 때, 나는 오류 다음 얻을 첫 페이지로드에서 잘

$('#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' 

department_id 필드를 변경하면 CSS가 빨간색으로 변경되므로 javascript UJS 루프도 정상적으로 작동합니다.

나는 오류가 지역 주민과 관련이 있다고 생각하지만 나는 무엇을 모른다.

도와주세요!

thx,

니콜라스.

답변

0

update.js.erb를 호출하면 form 개체가 없으므로 실패합니다.

아마 부분적으로 밖으로 휘저어서 재 작성해서 @projectmilestone@users을 매개 변수로 사용하는 HTML을 볼 수 있습니다.

업데이트 방법에는 이러한 매개 변수가 모두 있으므로 작동해야합니다.