bootstrap rails和自动加载问题

时间:2014-06-17 14:08:35

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

我在rails应用程序中使用bootstrap,没有gem但只包含相关文件。 但是,我想复制一些由gem创建的脚手架,只是为了不忘记任何东西。 Flash消息由布局中的这一行管理:

<%= bootstrap_flash %>

指的是一个ruby文件,其内容可以在下面找到。 问题是无论我把它放在什么目录中,我总是得到错误:

undefined local variable or method `bootstrap_flash' for ...

这里出了什么问题?

module BootstrapFlashHelper
ALERT_TYPES = [:error, :info, :success, :warning]

def bootstrap_flash
  flash_messages = []
  flash.each do |type, message|
    # Skip empty messages, e.g. for devise messages set to nothing in a locale file.
    next if message.blank?

    type = :success if type == :notice
    type = :error   if type == :alert
    next unless ALERT_TYPES.include?(type)

    Array(message).each do |msg|
      text = content_tag(:div,
                       content_tag(:button, raw("&times;"), :class => "close", "data-dismiss" => "alert") +
                           msg.html_safe, :class => "alert fade in alert-#{type}")
      flash_messages << text if msg
    end
  end
  flash_messages.join("\n").html_safe
end

1 个答案:

答案 0 :(得分:1)

由于帮助程序模块的名称为BootstrapFlashHelper,因此您应将文件命名为bootstrap_flash_helper.rb(在snake_case中)并将其放在your_application/app/helpers目录中。

现在,您可以在bootstrap_flash中的任何视图中使用your_application/app/views辅助方法。确保在这些更改后重新启动服务器。