2014-06-18 1 views
1

탭 사이를 전환하기 위해 로컬 변수를 가져 오는 데 문제가 있습니다. 현지인은 양식을 사용하는 각 탭 아래의 h3 태그 아래에 설정됩니다. 거기에서 로컬은 카테고리 변수로 전달되어 내 양식에서 부분 변수로 사용할 수 있습니다. 현재, 어떤 탭이 선택 되더라도 상관없이 첫 번째 지역 변수 인 "Associates"만 가져옵니다.탭이 변경 될 때 로컬 변수가 변경되지 않는 이유는 무엇입니까?

카테고리 변수가 선택된 탭을 기반으로 전달 된 올바른 로컬 변수를 가져 오는지 확인하는 방법이 있습니까?

미리 감사드립니다. 당신의 _form 부분 내부

_form.html.erb 

<%= form_for(@best_practice) do |f| %> 
<% if @best_practice.errors.any? %> 
<div id="error_explanation"> 
    <h2><%= pluralize(@best_practice.errors.count, "error") %> prohibited this best practice from being saved:</h2> 

    <ul> 
    <% @best_practice.errors.full_messages.each do |msg| %> 
    <li><%= msg %></li> 
    <% end %> 
    </ul> 
    </div> 
    <% end %> 

    <div class="field" style="width:90%;"> 
    <%= f.label :title %><p class="tabbertab-lbreak"></p> 
    <%= f.text_field :title %> 
    <%= f.hidden_field :category, :value => @category %> 
    </div> 
    <div class="field" style="width:90%;"> 
    <%= f.label :body %><p class="tabbertab-lbreak"></p> 
    <%= f.text_area :body, :cols => 30, :rows => 5 %> 
    </div> 
    <div class="actions"> 
    <%= f.submit(class: 'btn btn-large btn-primary') %> 
    </div> 
    <% end %> 

company.html.erb 

<div class="tabbable full-width-tabs"> 
     <ul class="nav nav-tabs nav-justified"> 
      <li class="active take-all-space-you-can"><a href="#tab-one" data-toggle="tab">Home</a></li> 
      <li class="take-all-space-you-can"><a href="#tab-two" data-toggle="tab">Associate</a></li> 
      <li class="take-all-space-you-can"><a href="#tab-three" data-toggle="tab">Safety</a></li> 
      <li class="take-all-space-you-can"><a href="#tab-four" data-toggle="tab">Order Fulfillment</a></li> 
     </ul> 
     <div class="tab-content"> 
      <div class="tab-pane active" id="tab-one"> 
       <h3 class="splash-header">Welcome!</h3> 
       <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur condimentum a purus vitae lobortis. Donec at nulla in lorem luctus semper. Nam porta dui eget pharetra pretium. Maecenas vitae porta est, sit amet auctor diam. Vestibulum mollis lectus mi, sed ultrices eros scelerisque in. Vivamus ultrices laoreet sem, id venenatis risus facilisis sit amet. Ut a hendrerit nisi, ut laoreet dui.</p><p>Proin laoreet massa sed dictum elementum. Nulla quis suscipit nisi. Etiam aliquam at nibh et feugiat. Pellentesque gravida lorem id erat elementum accumsan. Fusce sit amet enim nec nunc hendrerit molestie. Ut quis orci viverra tortor lobortis fringilla. Aenean in ligula dui. Morbi ornare malesuada augue, sed elementum purus varius ut. Fusce suscipit orci id diam tristique, ut semper lorem cursus. Proin urna massa, pulvinar at sapien vitae, tempor cursus sem. Nunc sit amet nibh sit amet odio luctus ultrices vel congue sem. Maecenas elementum, turpis nec cursus volutpat, diam quam faucibus ipsum, pellentesque tincidunt mi velit eget ligula. Aenean elementum, neque vel accumsan rutrum, risus diam posuere risus, sit amet semper risus magna sed nibh. Pellentesque quis risus at dui bibendum ornare ut vel augue. Aliquam et nunc sit amet dolor vehicula eleifend.</p>      
      </div> 
      <div class="tab-pane" id="tab-two"> 
       <h3 class="splash-header">Post Best Practice</h3> 
        <% @associate = "Associate" %> 
        <%= render 'best_practices/form', local: {category: @associate} %> 
        <h3 class="splash-header">View Best Practice</h3> 
        <ul> 
        <% BestPractice.with_category("Associate").each do |bp| %> 
        <li><%= link_to bp.title, best_practice_path(bp) %></li> 
        <% end %> 
        </ul>  
      </div> 
      <div class="tab-pane" id="tab-three"> 
       <h3 class="splash-header">Post Best Practice</h3> 
        <% @safety = "Safety" %> 
        <%= render 'best_practices/form', local: {category: @safety} %> 
        <h3 class="splash-header">View Best Practice</h3> 
        <ul> 
        <% BestPractice.with_category("Safety").each do |bp| %> 
        <li><%= link_to bp.title, best_practice_path(bp) %></li> 
        <% end %> 
        </ul> 
      </div> 
      <div class="tab-pane" id="tab-four"> 
       <h3 class="splash-header">Post Best Practice</h3> 
        <% @order = "Order Fulfillment" %> 
        <%= render 'best_practices/form', local: {category: @order} %> 
        <h3 class="splash-header">View Best Practice</h3> 
        <ul> 
         <% BestPractice.with_category("Order Fulfillment").each do |bp| %> 
         <li><%= link_to bp.title, best_practice_path(bp) %></li> 
        <% end %> 
        </ul> 
      </div> 
     </div> 
    </div> 

답변

0

_form.html.erb 간단한 사용 category 대신에 요구 @category.

당신의 company.html.erb를 들어

, 이것은 :category 변수에 @associate를 할당합니다

<%= render 'best_practices/form', :category => @associate %> 

을 시도, 그것은 category 간단 반대편에 액세스 할 수 있습니다.

0

, 당신은 category하지 @categorycategory을 참조 할 필요가있다.

또한, locallocals해야하고, 난 당신이 지역 주민에 전달하는 partialrender를 호출 할 필요가 예를 들어 생각 :

render partial: 'best_practices/form', locals: {category: @order}