Я использую bootstrap в приложении rails, без драгоценного камня, но просто включаю соответствующие файлы. Тем не менее, я хочу скопировать некоторые из лесов, созданных драгоценным камнем, чтобы ничего не забыть. Управление флеш-сообщениями осуществляется этой строкой внутри макета:
<%= bootstrap_flash %>
это относится к рубиновому файлу, содержимое которого вы можете найти ниже. Проблема в том, что любой каталог, в который я его вставлял, всегда получает ошибку:
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
конец
Поскольку именем вспомогательного модуля является BootstrapFlashHelper
, вы должны your_application/app/helpers
его как bootstrap_flash_helper.rb
(в snake_case
) и поместить его в your_application/app/helpers
.
Теперь вы можете использовать вспомогательный метод bootstrap_flash
в любом из ваших представлений, расположенных в your_application/app/views
. После этих изменений обязательно перезапустите сервер.