2011-02-01 78 views
2

當Rails 3的腳手架發電機做到這一點: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 %> 

但對於國際化?消息被翻譯,但爲什麼硬編碼的標題?我應該手動翻譯嗎?這似乎不太乾?

問候,

雅各

回答

2

您可以通過下載文件here on github覆蓋支架默認行爲,並放置時間在你的lib/templates/erb/scaffold。當你生成腳手架時,它會意識到模板在那裏並使用它們。

<% this code is executed and probably result in html %><%% this is converted to snippet %>,它不是那麼困難,然後就可以執行所有的個性化,但有自動生成的可能是困難的yml文件,反正你仍然可以得到您的模板幾乎自動完成。

要回答你的問題,我也想支架可以改進,但我看了到處開發人員喜歡從頭開始編寫自己的代碼。因此,我認爲,努力的重點是改善其他功能。當您是初學者時,腳手架至少仍然是理解和熟悉邏輯的有用工具。

+0

請注意 - 這是`lib/templates/erb/scaffold`複數`templates` – Clay 2011-09-20 17:16:41

0

我認爲腳手架比最終模板更多的提示。

你可能想要添加翻譯簡單地替代"prohibited this user from being saved:"t('my_message')和dding 到en.yml。添加翻譯你沒有重複和乾燥的原則是安全的。

撇開評論:我很少使用像這樣的消息「4錯誤禁止該用戶被保存」。根據我的經驗,更常見的是列出所有發生的錯誤,並以紅色顯示錯誤的字段。