rails中的scaffold生成器从位于lib/rails/generators/erb/scaffold/templatesrailties路径中的模板和lib/templates项目中的文件夹生成MVC层.
如果您将原始文件从railties文件夹复制到项目lib文件夹,那么您将能够自定义原始scaffold生成器,正如Daniel Fone在他的博客中解释的那样.
原始Rails生成器在视图层中使用5个文件:
_form.html.erbedit.html.erbindex.html.erbnew.html.erbshow.html.erb我想知道是否有办法通过向集合中添加另一个文件来扩展此行为.喜欢_header.html.erb或_info.html.erb(我设计的一些部分).
mar*_*ise 15
好几个月后我找到了解决方案.我没有像Rails 文档中那样创建新的生成器,而是覆盖了我的projects lib文件夹中的默认生成器.
原件scaffold_generator.rb位于~/.rvm/gems/ruby-2.1.0/gems/railties-4.2.4/lib/rails/generators/erb/scaffold.要添加新文件(_info.html.erb),我们将其添加到available_views方法中.
def available_views
%w(index edit show new _form _info)
end
Run Code Online (Sandbox Code Playgroud)
希望它可以帮助某人.
对于那些懒惰的人,这是一个快速命令,可将默认的railties erb模板复制到Rails中的正确位置:
mkdir -p lib/templates/erb/scaffold && \
cp $(bundle show railties)/lib/rails/generators/erb/scaffold/templates/* lib/templates/erb/scaffold
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2344 次 |
| 最近记录: |