5

有这些railscasts。

http://railscasts.com/episodes/218-making-generators-in-rails-3通过这篇文章,您将了解如何创建样式表和脚手架生成器。

http://railscasts.com/episodes/216-generators-in-rails-3通过这个,您将了解如何添加一些文件来修改脚手架视图。

我想做两者的混合。我想创建一个还创建脚手架视图的生成器。有点像 Ryan Bates 漂亮的生成器或 web_app_theme gem (https://github.com/pilu/web-app-theme)。我一直在寻找教程或一些信息来为我指明正确的方向,但我找不到我正在寻找的确切内容。

我知道我很接近了。我已经知道如何使用 Railcast 218 创建生成器,但现在,如何让它也创建视图文件?

我想运行这样的命令...

rails g my_scaffold_generator Post title:string body:text
4

1 回答 1

9

这可能为时已晚,无法提供帮助,但正如我在谷歌搜索相同信息时发现的那样......

在我看来,最好的方法,至少对于学习绳索,是复制然后改变现有的脚手架生成器。

所以让我绊倒的第一件事是找到默认模板,它们不在您的rails-3.2.0目录(或您使用的任何版本)中,而是在railties-3.2.0. 因此,对于我基于 RVM 的安装,它们位于:

/Users/leo/.rvm/gems/ruby-1.9.3-p194@gemset/gems/railties-3.2.0/lib/rails/generators/

[注意:您的 gems 目录可能完全在其他地方,用于$> gem environment查找您的 gem 路径]

这里erb/scaffold/templates/有你期望的文件(new.html.erb_form.html.erb)。

您可以将这些文件复制到应用程序的根目录中,lib/templates/erb/scaffold/然后将使用它们而不是默认文件。

如果您想在自定义生成器中使用这些,有两种方法:

1) 用于hook_for从您的生成器中调用常规的 ERB 脚手架生成器。

2) 在您自己的自定义生成器中移动/处理模板,使用Thorcopy_file中的类似方法将它们移动到位。

对此有一个不错的Rails 指南,尽管我发现直到我开始深入研究.../railties-3.2.0/lib/rails/generators/...并查看默认值的结构时才真正了解它。

于 2012-09-17T15:20:37.907 回答