コントローラーとビューの相互作用の間で混乱しています。アップロードされたcsvファイルを検証するこの初期フォームがあります。(投稿フォーム)。
このフォームが正常に検証された後、ユーザーに詳細を確認するオプションを提供します。この確認ボタンは別のフォームとして機能します。
問題は、params ハッシュに保存された以前のフォーム値の詳細を保持したいということです。したがって、基本的には、2 番目のフォームとのマージを実行したいと考えています。
これは可能ですか?もしそうなら、2 番目のフォームのコードを手伝ってもらえませんか。現在、前のフォームを上書きしています。どちらの形式も、コントローラー内の同じ関数を指しています。
<% unless @contents.blank? || @errors.present? %>
<form name="confirm_bulk_order" method="post" enctype="multipart/form-data" class="search line" action="/orders/create_bulk_order" id="confirm_bulk_order">
<div class="search-btn-align" id="confirmButton">
<input type="submit" name="confirm_bulk_order" value="Confirm Order" class="lmargin10 uiButton">
</div>
</form>
<% else %>
<form name="upload_bulk_order_csv" method="post" enctype="multipart/form-data" class="search line" action="/orders/create_bulk_order" id="upload_bulk_order_csv">
<div class="fileformField">
<span class="formlabel"> Upload CSV File: </span>
<input class="required" required="true" type="file" name="datafile"/>
</div>
<div class="search-btn-align" id="uploadButton">
<%= submit_tag 'Validate Bulk Order', :class => 'lmargin10 uiButton' %>
</div>
</form>
<% end %>
コントローラーの注文で
def create_bulk_corder
if @errors.blank? and params[:confirm_bulk_order]=="Confirm Order"
#Send the final REST order call
else
@contents = read_csv_file(params[:datafile]) if params[:datafile].present?
validate_order(@contents)
#Populate @errors etc, etc
....
....
end
render
end
これを可能にするには、どのような変更を加える必要がありますか?