Rails 3.0では、新しいレコード(この場合は患者)を作成する標準の「新しい」フォームがあります。それは正常に動作し、検証/エラー表示も正常に動作します。Rails:2つの独立したフォームを作成して、それらを別々に保つ方法は?
クライアントは現在、スペイン語でフォームを必要としています。 「newspanish」と呼ばれる新しいHTMLドキュメント(「新規患者/」からのカット/ペーストコード)
- :
だから、私はこれをしませんでした
- 「新聞」と呼ばれる「患者」にコントローラアクションを作成し、「患者」の「患者」に「コントローラ」アクションの正確なコードを貼り付けて貼り付けました。新しい "アクション。
- 「作成」アクションはそのまま残しました。
- 「患者/新聞」をルートに追加しました。
- 英語の部分をビュー/新聞とビュー/ _form_newspanishでスペイン語に翻訳しました。もちろん、ユーザーがページで読んでいるだけのものです...レールコードではありません。
そして、完全な提出のために動作します。
(電話番号として3桁の数字を入力するなど)検証に失敗した場合、ページはビュー「patients/new」に戻り、フォームの上のエラーを英語で表示します。もちろん、患者/ newは英語です。
もちろん、私はそれを "views/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
に
def create_in_spanish
を追加します?スペイン語のymlロケールファイルを提供していますか?こちらをご覧ください:http://guides.rubyonrails.org/i18n.html – dmcnally