当在Rails 3中使用脚手架时,生成器会执行此操作:
<% if @user.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>
<ul>
<% @user.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
但是i18n怎么样?消息得到翻译,但为什么硬编码的标题?我应该手动翻译吗?那似乎不太干?
此致
雅各
答案 0 :(得分:2)
您可以通过下载文件here on github来覆盖脚手架默认行为,并将em放入lib/templates/erb/scaffold
。当你生成脚手架时,它意识到模板就在那里并使用它们。
<% this code is executed and probably result in html %>
,<%% this is converted to snippet %>
,这并不困难,然后您可以执行所有个性化设置,但自动生成yml
文件可能会更难,无论如何您仍然可以获得你的模板几乎是自动完成的。
为了回答你的问题,我也认为脚手架可以改进,但我读到开发人员更喜欢从头开始编写自己的代码。因此,我认为,努力的重点是改进其他功能。当您是初学者时,脚手架至少是一个有用的发生器,可以理解并熟悉逻辑。
答案 1 :(得分:0)
我认为脚手架比最终模板更具暗示性。
您可能希望添加翻译,只需将"prohibited this user from being saved:"
替换为t('my_message')
并将'my_message: whatever'
替换为en.yml
。添加翻译你没有重复,干燥的原则是安全的。
除了评论之外:我很少使用像这样的消息“4个错误禁止此用户被保存”。根据我的经验,更常见的是列出发生的所有错误并以一种红色显示错误的字段。