如何更改 Rails 脚手架中的默认模型模板?
Posted
技术标签:
【中文标题】如何更改 Rails 脚手架中的默认模型模板?【英文标题】:How do I change the default model template in Rails scaffold? 【发布时间】:2012-03-27 09:44:39 【问题描述】:如果我想更改 Rails 中脚手架创建的默认控制器模板,这很容易 - 在谷歌搜索之后,我发现我可以在 lib/templates/rails/controller 中放置一个 controller.rb 文件,以便生成器获取而不是默认值。
我找不到任何关于在哪里可以对模型文件执行相同操作的说明。我不想构建一个单独的生成器,我只想:
> rails generate model foo
根据我制作的 model.rb 模板创建 foo.rb 模型文件。
【问题讨论】:
【参考方案1】:不确定这是否是个好主意,但您可以在此处找到生成器代码:https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/model/model_generator.rb
module Rails
module Generators
class ModelGenerator < NamedBase #metagenerator
argument :attributes, :type => :array, :default => [], :banner => "field[:type][:index] field[:type][:index]"
hook_for :orm, :required => true
end
end
end
根据this post,尽管您应该能够将模板放入lib/templates/rails/model
,但您可能需要根据to this通过rake任务指定模板的位置
【讨论】:
是的,我确实尝试过,但它似乎没有发现我对 model_generator.rb 文件所做的任何更改......也许我在某处犯了错误,因为这是我的想法如何做到这一点......或者我可能没有正确弄清楚如何让该生成器使用我的模板文件(对于生成器来说仍然很新)。不过,正如您所建议的那样,我将重新审视这个解决方案。 好的...所以我看了一下您引用的内容,链接是 1)构建您自己的生成器并使用它,2)我在原始帖子中提到的内容,即放置其他东西的正确lib文件夹中的文件。所以,两者都没有帮助。问题是我可以做些什么来从模板中提取模型,就像我可以使用控制器和视图模板一样。我看到了生成器代码——我已经在 lib/templates/rails/model 文件夹中有一个用于更改的复制副本——我无法弄清楚可以对此进行哪些更改以使其拉入模板,或者是否有可能.以上是关于如何更改 Rails 脚手架中的默认模型模板?的主要内容,如果未能解决你的问题,请参考以下文章