在Rails 3.0中,我有標準的「新」表單來創建新記錄,在這種情況下是病人。它工作正常,驗證/錯誤顯示也工作正常。Rails:兩個獨立的創建窗體..如何讓它們分開?
客戶現在想用西班牙文形式。
所以,我這樣做:
- 創建一個名爲「newspanish」一個新的HTML文檔(剪切/粘貼代碼從「患者/新」)
- 創建一個新的部分稱爲「_form_newspanish」和引用它在「newspanish」(從視圖「患者/ _form」剪切/粘貼代碼)
- 在「患者」中創建一個名爲「newspanish」的控制器操作,並從「新「行動。
- 我沒有觸動「創建」動作。
- 在路線中添加了匹配「patients/newspanish」。
- 將英語部分翻譯成西班牙語,以views/newspanish和views/_form_newspanish。只是用戶在頁面上閱讀的東西,當然......不是欄杆代碼。
而且,它的工作,完美提交。
對於未通過驗證的提交(如將3位數字作爲電話號碼),該頁面將恢復爲「患者/新」視圖,並在英文中顯示錶格上方的錯誤...當然,因爲患者/ new是英文。
當然,我希望它恢復到「views/newspanish」,並在驗證錯誤(西班牙語)中顯示自定義的verbage。
任何想法如何讓我的病人/ newspanish視圖加載時,錯誤驗證它絆倒?
這裏是我的代碼爲 「_form_newspanish」
<%= form_for(@patient) do |f| %>
<% if @patient.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@patient.errors.count, "error") %> prohibited this subscriber from being saved:</h2>
<ul>
<% @patient.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<p><label for="mobile">Número de teléfono celular o móvil*</label>: <%= f.text_field :mobile %></p>
<br />
<%= f.submit "Inscribirme" %>
</div>
<% end %>
和控制器......患者/ newspanish
def newspanish
@patient = Patient.new
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @patient }
end
end
???並提供西班牙語yml語言環境文件?看到這裏:http://guides.rubyonrails.org/i18n.html – dmcnally 2011-12-23 21:38:32