首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我的局部变量不会随着选项卡的变化而改变?

为什么我的局部变量不会随着选项卡的变化而改变?
EN

Stack Overflow用户
提问于 2014-06-18 23:50:05
回答 2查看 62关注 0票数 1

我很难让局部变量在选项卡之间切换。局部变量设置在使用表单的每个选项卡下的h3标记下。从那里,局部变量被传递给类别变量,这样我的表单就可以使用它作为部分。目前,它只提取第一个局部变量"Associates",不管选择了哪个选项卡。

是否有一种方法可以确保类别变量根据选中的选项卡获得正确的本地传递?

提前谢谢。

代码语言:javascript
运行
复制
_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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-19 21:33:32

_form.html.erb需要简单地使用category而不是@category

对于您的company.html.erb,请尝试

代码语言:javascript
运行
复制
 <%= render 'best_practices/form', :category => @associate %>

这将将@associate分配给:category变量,并且它可以作为简单的category在另一边进行访问。

票数 0
EN

Stack Overflow用户

发布于 2014-06-19 14:12:07

_form部分中,您需要将category引用为category,而不是@category

另外,local应该是locals,我认为您必须用partial键调用render才能传入本地,例如:

代码语言:javascript
运行
复制
render partial: 'best_practices/form', locals: {category: @order} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24296742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档