2011-10-16 1 views
0

부분 값에 두 값을 전달하는 방법

이 코드 청크가

 <%= semantic_form_for @tournament do |f| %> 
    <%= f.semantic_fields_for :courts do |builder| %> 
     <%= render :partial => "court_fields", :locals => { :f => builder } %> 
     <span class="links"> 
     <%= link_to_add_fields "Add More Court", f, :courts %> 
     </span> 
    <% end %> 

여기에 부분

<div class="nested_fields"> 
<%= f.input :name %> 
<%= f.input :address %> 
<%= f.input :city %> 
<%= f.input :state %> 
<%= f.input :zip %> 
<%= f.input :phone %> 
<%= f.input :contact_name %> 
<%= link_to_remove_fields "Remove Court", f %> 
</div> 

하지만 정말 필요한 부분의 스팬을 너무 그것의 nested_fields div에 묶여 ... 나는 시도

<%= semantic_form_for @tournament do |f| %> 
    <%= f.semantic_fields_for :courts do |builder| %> 
    <%= render :partial => "court_fields", :locals => { :f => builder, :original_f => f } %> 
<% end %> 

및 부분

<div class="nested_fields"> 
<%= f.input :name %> 
<%= f.input :address %> 
<%= f.input :city %> 
<%= f.input :state %> 
<%= f.input :zip %> 
<%= f.input :phone %> 
<%= f.input :contact_name %> 
<%= link_to_remove_fields "Remove Court", f %> 
<span class="links"> 
<%= link_to_add_fields "Add More Court", original_f, :courts %> 
</span> 
</div> 

하지만이 오류가 아래에 ... 내가 뭘 잘못하고 어쩌면 내 부분적으로 이해가 모든 도움을 주시면 감사하겠습니다 ...

undefined local variable or method `original_f' for #<#<Class:0x000001035d5a80>:0x000001035cd920> 

내 도우미

def link_to_remove_fields(name, f) 
    f.hidden_field(:_destroy) + link_to_function(name, "remove_fields(this)") 
end 

def link_to_add_fields(name, f, association) 
    new_object = f.object.class.reflect_on_association(association).klass.new 
    fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder| 
    render(association.to_s.singularize + "_fields", :f => builder) 
    end 
    link_to_function(name, ("add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")")) 
end 
+0

'link_to_add_fields' 헬퍼를 게시 할 수 있습니까? – bricker

+0

확실한 1 초 ... – Trace

+0

@bricker - 게시 됨 – Trace

답변

0
render(association.to_s.singularize + "_fields", :f => builder) 

아니오 original_f 부분 렌더링에서?

+0

무슨 뜻입니까 – Trace

+0

뜻은 : court_fields는 f와 original_f를 사용합니다. 첫 번째 렌더링에서는 두 가지 모두를 보냅니다. 그러나이 렌더링에서는 도우미 안에서 f 만 보냅니다. 내가 놓친 게 있니? – tokland