Rails创建一个新的脚手架发电机

时间:2013-10-24 13:40:45

标签: ruby-on-rails twitter-bootstrap

我将要开发一个具有非常大的数据模型的项目,但不要求视图看起来太独特。我认为加快所涉及的工作的一个好方法是创建一个很像脚手架的生成器,但是使用简单形式和引导类之类的东西。与脚手架没什么不同,突然发生了一些微小的变化。我有什么想法可以做到这一点吗?

1 个答案:

答案 0 :(得分:3)

我最近建造了一个脚手架发电机。我做了两件重要的事情:

这有助于我了解宝石的工作方式,并在资产管理等方面给予我更大的灵活性。

据说,Rails发生器使用Thor。最重要的是要知道你需要以某种方式加载文件(我建议使用初始化程序和lib目录)并且文件将运行每个公开定义的方法。这有点奇怪和意外,但它有助于保持代码清洁。

例如:

class CustomerGenerator < Rails::Generators::Base
    argument :foo, :type => :string, :default => 'foozball'
    def create_view_files
        template 'path/to/your/view.html.erb',"app/views/view.html.erb"
    end
end

这将自动调用create_view_files,您可以在类和模板中以foo的形式访问:foo参数。

要转义erb代码,请使用<%%= %>代替<%= %> - 后者实际上会被评估,这样您就可以执行<%%= @<%= foo %> %>之类的操作。在我们的默认情况下,这将评估为<%= @foozball %>

您可能需要查看漂亮的生成器以使所有内容符合要求,但这是实际生成器工作原理的基础。