8

我正在研究 Rails 引擎,我正在尝试编写一个生成器来放置这条线

do_stuff (foo)

作为 中的最后一条语句config/routes.rb,而不会破坏文件语法。

具体来说,如果我config/routes.rb目前看起来像这样

Rails.application.routes.draw do
    blah
    more blah
end

运行生成器后,我希望config/routes.rb看起来像这样

Rails.application.routes.draw do
    blah
    more blah
    do_stuff (foo) # injected line
end

我查看了ActiveAdmin 做了什么,但无法创建一揽子最后一行规则。任何帮助是极大的赞赏。

4

1 回答 1

14

我没有对此进行测试,但我认为根据您在 ActiveAdmin 生成器中链接到的内容,它可能会像这样工作:

inject_into_file "config/routes.rb", "  do_stuff(foo)\n", :before => /^end/

end这应该在从行首开始的标记之前插入您的代码。但这仅适用于格式正确的路由文件....

于 2013-11-07T13:40:11.360 回答