我正在使用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)
我错过了什么?视图之间的调用是否正确?
答案 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'
调用模态并且所有工作都按预期工作。