Я путаюсь между взаимодействием контроллера и представлений. У меня есть эта начальная форма, которая проверяет загруженный файл csv. (Форма POST).Последовательная подача формы без потери данных в Rails?
После того, как эта форма успешно подтверждена, я даю пользователю возможность подтвердить данные, которые, и эта кнопка подтверждения действуют как другая форма.
Дело в том, что я хочу сохранить данные из предыдущих значений формы, сохраненных в хэше params. Поэтому в основном я хочу выполнить слияние со второй формой.
Возможно ли это? Если да, можете ли вы помочь мне с кодом для второй формы, потому что в настоящее время она переопределяет предыдущую форму. Обе формы указывают на ту же функцию в контроллере.
<% 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
Что все изменения, которые я должен сделать, чтобы это было возможно?
вашей загрузка работает, ваша форма утверждена после загрузки, то какой данные вы хотите быть во второй форме после подтверждающего щелчка мыши. Разве они не входят в параметры. Если это так, то вам нужно обработать эти данные из хэша. –