Rails4 + Bootstrap3 - 模式渲染但不会显示

时间:2016-02-22 20:54:07

标签: javascript jquery ruby-on-rails twitter-bootstrap modal-dialog

我正在使用Rails 4,Bootstrap 3.有问题的特定页面由3个haml视图组成。第一个包含大部分页面内容。第二行包含一行按钮 - 其中一个按钮需要触发模态。第三个包含模态。

第一个视图的代码是:

    <...bulk of page content...>
    = render partial: 'shared/buttons', locals: {diagram: @diagram}
    #showDetail.modal.fade{"aria-labelledby" => "showDetail", :role => dialog, :tabindex => "-1"}

第二个视图的代码(&#39;共享/按钮&#39;):

    <...links to several buttons that don't call modals...>
    = link_to "Show Detail", show_detail_path(item), class: "btn", data: {"toggle" => "modal", "target" => "#showDetail", "remote" => :true}

第三个视图的代码(items / _show_detail.html.haml,路由到&#39; show_detail_path&#39;):

    .modal-dialog{:role => "document}
      .my_popup_contain
        .container-fluid
          <...rest of the code for the page...>

在控制器中:

    def show_detail
      render partial: "show_detail"
    end

因此,使用此设置,单击按钮将生成页面&#34; fade&#34;就像模态会出现一样,但它永远不会出现。再次单击(任何位置)会使页面淡出(就像显示模式时一样)。 rails服务器日志显示模式确实呈现:

  

开始GET&#34; / items / 4 / show_detail&#34;对于127.0.0.1在2016-02-22 14:49:44 -0600   由ItemsController#show_detail处理为JS     参数:{&#34; id&#34; =&gt;&#34; 4&#34;}     用户负载(2.1ms)SELECT&#34;用户&#34;。* FROM&#34;用户&#34;用户&#34;。&#34; id&#34; = 1 ORDER BY&#34;用户&#34;。&#34; id&#34; ASC限制1     物品装载(1.5ms)SELECT&#34; items&#34;。* FROM&#34; items&#34;在哪里&#34;项目&#34;。&#34;类型&#34; IN(&#39;项目&#39;)和&#34;项目&#34;。&#34; id&#34; = $ 1 LIMIT 1 [[&#34; id&#34;,4]]     渲染项目/ _show_detail.html.haml(1.1ms)   在11ms完成200 OK(浏览次数:4.7ms | ActiveRecord:3.6ms)

我错过了什么?视图之间的调用是否正确?

1 个答案:

答案 0 :(得分:0)

通过添加第一个视图的代码来解决此问题:

    <...bulk of page content...>
    = render partial: 'shared/buttons', locals: {diagram: @diagram}
    #showDetail.modal.fade{"aria-labelledby" => "showDetail", :role => dialog, :tabindex => "-1"}
      = render partial 'items/show_detail'

调用模态并且所有工作都按预期工作。