2014-10-02 3 views
8

Я хотел бы знать, как использовать middleman console. Это простой irb? Что я могу сделать с этим, что отличается от простого irb?посредник консоль: как его использовать?

middleman console [options]   # Start an interactive console in the cont... 

У меня есть несколько статей, и я стараюсь делать Article.all, но у меня была эта следующая ошибка:

NameError: uninitialized constant Middleman::Application::MiddlemanApplication1::Article 
    from (irb#1):1 

и у меня также есть local-data/data/friends.json но Friend.all ошибку на выходе тоже.

{ 
    "friends": [ 
    "Tom", 
    "Dick", 
    "Harry" 
    ] 
} 

Я видел, что Symbol.all_symbols выхода A много посреднических переменной и функцию, но я не знаю, как использовать консоль перекупщика.

+0

Мне нравится [использовать Pry, чтобы найти ответ] (https://andrew.kvalhe.im/use-pry-as-the-middleman-console/) для такого рода вещей. –

ответ

8

О, мужчина, я просто потрачу несколько часов, пытаясь решить что-то, что прошло бы намного быстрее, если бы я знал, что есть консоль посредника!

Я пытался построить следующую/заднюю логику для прохождения статей в своем блоге. Есть хронологическая вещь, но я хотел также быть в состоянии идти туда и обратно по тегам. Есть несколько, которые помечены как «рубиновые», так и «скажем» «рельсы», а «следующий» для обоих тегов - то же самое, что я хотел бы перечислить их вместе под обоими тегами.

Основная проблема заключалась в том, что я не знал, какие вещи были доступны мне в файле шаблонов. Когда вы запускаете middleman console, он загружает конфигурацию вашего сайта, чтобы вы могли начать совать.

$ bundle exec irb 
2.0.0-p481 :001 > blog 
NameError: undefined local variable or method `blog' for main:Object 
from (irb):1 
2.0.0-p481 :002 > exit 
$ middleman console 
== LiveReload is waiting for a browser to connect 
2.0.0-p481 :001 > blog 
=> #<Middleman::Blog::BlogData: [#<Middleman::Blog::BlogArticle: {"title"=>"Emb 

т.д.

Что Посредник консоль делает это загрузить среду перекупщик, а затем позволяет вызывать методы текущего Middleman::Application объекта. Если вы используете расширение посредника, и они определили помощников, вы можете добраться до них здесь и начать ковырять.

Handy вещи:

config является объектом Посредник конфигурации.

data является объектом Посредник данных из каталога данных

blog является блог конфигурации, если вы используете Middleman-блог

drafts являются проекты статей, если вы используете Посредник-блог- чертежи

+0

Наконец-то ... ответ! Большое спасибо. Я хотел бы знать, что это за ссылка, что вы найдете всю информацию о ['config', 'data', 'blog', 'drafts'] Я смотрел на [docs] (http://www.rubydoc.info/github/middleman/middleman/Middleman/Cli/Console), и я не смог найти информацию об этих объектах. Я думал, как в рельсах, и пытался сделать 'Articles.all' на самом деле, поскольку вы указываете, что я должен был попробовать' blog.articles' –

+0

. Мой процесс был таким: (Думаю, я не могу использовать новые строки здесь!) Запустите «консоль посредника» и введите случайный метод. Вы получаете сообщение об ошибке: 'undefined local variable или method' this_is_not_a_method 'для # ', который подразумевает, что вы работаете. 'Я.class' возвращает 'Middleman :: Application :: MiddlemanApplication1', поэтому вы находитесь в этом контексте. В основном это означает, что все вспомогательные методы доступны вам на консоли. «sitemap» вернет карту сайта посредника, например. –

+0

Когда я пытаюсь использовать функции посредника (определенные внутри раздела «помощники»), он сообщает мне «NoMethodError: undefined method» tags_to_mi для # '. Любая идея, почему я не могу получить доступ к функциям? [Этот поток - это то, что я хочу, но ответ не работает для меня] (http://stackoverflow.com/questions/42144577/how-can-helpers-be-accessed-from-middleman-console) –