当我渲染另一个部分时,保持bootstrap崩溃

时间:2018-04-05 11:14:53

标签: ruby-on-rails twitter-bootstrap ruby-on-rails-4

在我看来,我有各种各样的部分,当渲染时有一些内容的引导崩溃。

  <div class="col-md-12">
    <%= render 'contact_phones', f: f %>
    <%= render 'contact_emails', f: f %>
    <%= render 'contact_websites', f: f %>
    <%= render 'contact_addresses', f: f %>
    <%= render 'contact_gym_contacts', f: f %>
    <%= render 'contact_notes', f: f %>
 </div>

每个部分都有与此类似的内容

<% if params[:phones].blank? %>
    <%= link_to "#{url_for(params.merge({phones: 1, anchor: 'phones_collapse'}))}" do %>
      <%= t('activerecord.models.phone.other').capitalize %>
      <i class="fa fa-caret-down"></i>
    <% end %>
<% else %>
   <a data-toggle="collapse" href="#phones_collapse" aria-controls="phones_collapse"><%= t('activerecord.models.phone.other').capitalize %>
     <i class="fa fa-caret-up"></i>
   </a>
   <div id="phones_collapse" class="collapse in" >
     <%= render(layout: 'resourceable/application/resourceable_association', locals: {f: f, resource_association: Contact.resource_association(:phones)}) do |builder| %>
       <% if builder.object.persisted? %><p><%= link_to I18n.t('call_with_my_extension'), call_phone_url(builder.object), :remote => 'true' %></p><% end %>
     <% end %>
   </div>
<% end %>

渲染一个部分,然后折叠后,如果我渲染另一个部分(点击链接),第一个再次打开。在第一次渲染之后,如果我打开另一个,它们会保持关闭状态。问题是只有当我第一次渲染时,任何已经打开的东西都会再次打开,即使它已经折叠了。

渲染部分会添加到URL中,我想每次点击链接时都会发送URL,打开以前的折叠,就像这样

contacts=1&phones=1&websites=1#gym_contacts_collapse

如果我能找到一种方法来检查部分是否已经渲染(在测试中我可以检查内容,但是如何在视图中获取它?)。然后我可以尝试操纵类中的崩溃和崩溃。我尝试使用window.location和window.location.replace操作URL,但没有运气。

My idea:
When I click on the link:
  if this partial hasn't been rendered yet
    if other collapsible are closed, 
     they stay closed.
    if open, 
      they stay open.

对不起,如果问题是重复或复杂的,请提前感谢。也许这比我制作它更简单

0 个答案:

没有答案