Я пытался включить частичное в модальное что-то похожее на это Rails Admin , когда вы нажимаете "создать язык".
Теперь, когда я действительно не выяснил, кактам работает код, я пытался сделать смесь между этим Rails - AJAX - модальным диалогом? и чем-то собственным.
Дело в том, что частичное теперь визуализируется в модальном.Но когда я нажимаю «сохранить», проверка вернется к «нормальному» представлению создания нового и не будет отображать ошибки проверки непосредственно в модальном режиме.
Как я могу показатьошибки проверки в появившемся модале напрямую?
Когда я сохраняю, я должен как-то отличать сохранение от этого модального и обычное сохранение, так как этот фрагмент будет вызываться откуда-то еще ипотребуется установить новый созданный объект непосредственно как новый объект в раскрывающемся списке.Я думаю, мне нужно будет отличить формат ответа, а затем использовать JS, чтобы установить новый идентификатор для идентификатора DropDown?
Вот некоторый код, написанный до сих пор.В представлении, где я включаю частичное, это выглядит так, когда я вызываю другой контроллер (поскольку я нахожусь на другом контроллере-new-view).
$.get('<%= url_for :controller => 'customers', :action => 'new' %>',
function(data) {
$('#customer-modal').html(data);
}
);
Тогда новый в контроллере "customres" различаетмежду другим форматом запроса и рендерингом другого частичного (в данном случае «_ajax_form.html.erb»):
if request.xhr?
render "_ajax_form", :layout => false
В этом частичном я использую «simple_form_for @customer,: remote => true do |f] .... ", так что я предполагаю, что в конце отправка должна выглядеть иначе, чем стандартная, так как это вызывает обычное" create "на контроллере?
<div class="modal-footer">
<%= f.button :submit, :class => 'btn primary' %>
<a id='cancel-form' class= "btn small info">cancel</a>
</div>
Спасибо за любую помощь, которая разъясняет, чтоЯ делаю неправильно или как это должно быть сделано, поскольку мой опыт работы с Rails и JS / AXAX еще не слишком опытен ..;)
- РЕДАКТИРОВАНИЕ: У меня есть версия, где в моем специальном партиале, которыйзагружен в модальном режиме, вызовет отдельное действие с именем "new_from_sale" внутри simple_form_for:
simple_form_for @customer, :url => url_for(:action => 'new_from_sale', :controller => 'customers') do |f|
Затем в контроллере, когда сохранение этого новогообъект, я перенаправляю к первому вызванному представлению с новым идентификатором в качестве параметра, который затем заполняет раскрывающийся список.В другом случае, когда новый объект не может быть сохранен, мне нужно как-то показать ошибки, все еще в этом модальном.До сих пор обе попытки либо напрямую визуализировать частичную render :partial => "customers/ajax_form"
, либо вернуть JS-код render :js => "$('#sale_customer_id').val(#{@customer.id});"
пока не сработают ... но я буду пытаться попытать счастья ..