我很难让局部变量在选项卡之间切换。局部变量设置在使用表单的每个选项卡下的h3标记下。从那里,局部变量被传递给类别变量,这样我的表单就可以使用它作为部分。目前,它只提取第一个局部变量"Associates",不管选择了哪个选项卡。
是否有一种方法可以确保类别变量根据选中的选项卡获得正确的本地传递?
提前谢谢。
_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>发布于 2014-06-19 21:33:32
_form.html.erb需要简单地使用category而不是@category。
对于您的company.html.erb,请尝试
<%= render 'best_practices/form', :category => @associate %>这将将@associate分配给:category变量,并且它可以作为简单的category在另一边进行访问。
发布于 2014-06-19 14:12:07
在_form部分中,您需要将category引用为category,而不是@category。
另外,local应该是locals,我认为您必须用partial键调用render才能传入本地,例如:
render partial: 'best_practices/form', locals: {category: @order} https://stackoverflow.com/questions/24296742
复制相似问题