我在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("×"), :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
端
答案 0 :(得分:1)
由于帮助程序模块的名称为BootstrapFlashHelper
,因此您应将文件命名为bootstrap_flash_helper.rb
(在snake_case
中)并将其放在your_application/app/helpers
目录中。
现在,您可以在bootstrap_flash
中的任何视图中使用your_application/app/views
辅助方法。确保在这些更改后重新启动服务器。