gpt4 book ai didi

ruby-on-rails - 如何在 Rails 3 中创建自定义脚手架生成器?

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:00 26 4
gpt4 key购买 nike

有这些 railscast。

http://railscasts.com/episodes/218-making-generators-in-rails-3有了这个,你就会知道如何创建样式表和脚手架生成器。

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

我想把两者结合起来。我想创建一个生成器,它也可以创建脚手架 View 。有点像 Ryan Bates 漂亮的生成器或 web_app_theme gem (https://github.com/pilu/web-app-theme)。我一直在寻找教程或一些信息来为我指明正确的方向,但我找不到我要找的东西。

我知道我很接近。我已经知道如何使用 Railcast 218 创建生成器,但现在,我怎样才能让它也创建 View 文件?

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

rails g my_scaffold_generator Post title:string body:text

最佳答案

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

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

所以让我感到困惑的第一件事是找到默认模板,它们不在您的 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 环境查找您的 gem 路径]

这里是 erb/scaffold/templates/ 里面有你期望的文件(new.html.erb, _form.html.erb 等)。

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

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

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

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

有一个像样的Rails Guide在这方面,虽然我发现直到我开始在 .../railties-3.2.0/lib/rails/generators/... 中挖掘并查看如何默认值是结构化的。

关于ruby-on-rails - 如何在 Rails 3 中创建自定义脚手架生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10182919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com