中间人控制台:如何使用?

10

我想知道如何使用 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输出了很多中间变量和函数,但我不知道如何使用中间人控制台。


我喜欢使用Pry来发现这类问题的答案。链接 - ændrük
1个回答

11

哦,天啊,我刚刚花了几个小时去解决一个问题,如果我知道有一个中间人控制台,我就可以更快地解决它!

我正在尝试为我的博客构建下一篇/上一篇文章的逻辑。虽然有一个按时间排序的东西,但我还想能够在标签之间前后切换。有一些标签同时被标记为“ruby”和(比如)“rails”,而且对于这两个标签,“下一篇”都是相同的,我希望能将其同时列在这两个标签下。

主要问题是我不知道在模板文件中可用的各种东西。当您启动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对象上调用方法。如果您正在使用中间人扩展并且它们定义了帮助程序,则可以在此处访问它们并开始探索。

方便的事情:

config 是中间人配置对象。

data 是来自数据目录的中间人数据对象

blog 是博客配置,如果您正在使用中间人博客

drafts 是草稿文章,如果您正在使用中间人博客草稿


终于有答案了!非常感谢。我想知道你找到关于 ['config','data','blog','drafts'] 所有信息的链接是什么?我看了文档,但没有找到有关这些对象的信息。我一直在想像在Rails中那样尝试做 Articles.all,实际上正如你指出的那样,我应该尝试 blog.articles - Papouche Guinslyzinho
我的过程是这样的:启动 middleman console 并输入一个随机方法。你会得到一个错误:undefined local variable or method 'this_is_not_a_method' for #<Middleman::Application:0x70328389148900>,这意味着你正在运行的地方。self.class 返回 Middleman::Application::MiddlemanApplication1,所以你在那个上下文中。基本上这意味着所有的帮助方法都可以在控制台中使用。例如,sitemap 将返回 middleman 站点地图。 - Will Schenk
当我尝试使用中间人函数(在“helpers”部分内定义)时,它告诉我NoMethodError: undefined method 'tags_to_mi' for #<Middleman::Application:0x50527180>。有什么想法为什么我无法访问这些函数?这个线程是我想要的,但答案对我不起作用 - James L.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接