/ / Rails bootstrap скъпоценен камък монтажен метод не работи - руби-на-релси, рубин, руби-на-релси-4, monkeypatching

Релси, които не работят - с руби-на-релси, рубин, руби-на-релси-4, монтажни манипулации

Използвам отличния Туитър фърмуера парапети скъпоценен камък. В този скъпоценен камък има помощник (NavbarHelper), който се използва за генериране на Navbars Bootstrap с помощта на Ruby. Искам да пийвам пачулитката на скъпоценното камъче, така че падащите списъци няма да имат грижи.

Така че, аз разгледах източника и намерих съответния метод тук, Всичко, което трябва да направя, е да го замени. Създадох нов файл в конфиг / инициализатори, наречен navbar.rb със следното съдържание:

NavbarHelper.module_eval do
def name_and_caret(name)
"HELLO WORLD"
end
end

Предполага се, че всички падащи заглавия тогаватрябва да се изобрази като "HELLO WORLD" в приложението ми (както се посочва от източника на скъпоценни камъни). Това обаче не се случва и скъпоценните камъни изобщо не се появяват.

Опитах се да положа puts NavbarHelper.methods - Object.methods във файла с инициализатори и нямашерезултати, което ме кара да мисля, че Rails не зарежда скъпоценните камъни правилно преди инициализаторите. Също така проверих и проверих, че скъпоценният камък не използва автолоад за неговите помощници.

редактиране

Това, което може да усложни това, е, че моят Gemfile включва скъпоценния камък по следния начин:

gem "twitter-bootstrap-rails", git: "git://github.com/seyhunak/twitter-bootstrap-rails.git", branch: "bootstrap3"

Не съм сигурен дали това конкретно версиране означава, че манипулацията не работи.

Редактиране # 2

Изглежда има само една версия на скъпоценния камък на моята система, така че не мисля, че това е въпросът. Също така, опитах да направя require "twitter-bootstrap-rails в горната част на файла с инициализатори, без резултати.

Отговори:

1 за отговор № 1

Проблемът е, че сте кръстили метода на този модул, но модулът вече е включен в тази точка. Опитайте се да определите това в application_helper.rb

def name_and_caret(name)
super("blub #{name}")
end