Rails渲染div在它的父div之外

时间:2014-02-27 23:28:12

标签: ruby-on-rails ruby html

我遇到的问题是在其容器div之外呈现警报。我有一个bootstrap flash助手和客户帮助器,它应该输出一个警报div。但警告div正在boostrap-flash div。

之后输出
# application.html.erb
# ..snip..
<div class="bootstrap-flash">
  <%= unconfigured_subscription_manager_alert %>
  <%= bootstrap_flash %>
</div>
# ..snip..

看起来不错?这是输出:

<div class="bootstrap-flash">

</div>

<div class="alert alert-danger">
  ..alert text..  
</div>

WTF?好的,这是辅助方法:

def unconfigured_subscription_manager_alert
  return unless distributor_staff_signed_in? and 
    current_distributor.subscription_manager_options_set?

  raw("<div class=\"alert alert-danger\">..alert text..</div>")
end

最奇怪的是,无论我使用以下任何语法,都会输出警报div:

<% unconfigured_subscription_manager_alert %>
<%= unconfigured_subscription_manager_alert %>
<% concat unconfigured_subscription_manager_alert %>

其中没有一个将div放在它应该去的地方。另一个奇怪的事情是distributor_staff_signed_in?是假的,警报仍在显示......太奇怪......

我尝试重新启动服务器并交换bootstrap-flash div内的辅助方法调用的位置无效。我还尝试制作一个unconfigured_subscription_manager?帮助器,然后像这样检查并执行:

# application.html.erb
# ..snip..
<div class="bootstrap-flash">
  <% if unconfigured_subscription_manager? %>
    <div class="alert alert-danger">..alert text..</div>
  <% end %>
  <%= bootstrap_flash %>
</div>
# ..snip..

无济于事。

有人有任何想法吗?感谢。

更新

  • 尝试将binding.pry放在bootstrap-flash div上方,distributor_staff_signed_in?为false,unconfigured_subscription_manager_alert返回nil,正如预期的那样

  • 清除了我的浏览器缓存,删除了数据库并重新启动,问题仍然存在:(

  • 按照gist的要求发布完整application.html.erb(对不起,SO编辑讨厌它)

更新2

以某种方式解决了它,不知道怎么样......我猜错了代码......对不起是that guy大声笑。感谢所有帮助过我的人!

0 个答案:

没有答案