Подтвердить что ты не робот

Несколько кнопок/форм отправки в Rails

Я пытаюсь написать приложение rails, которое позволяет перейти на определенную страницу, например /person/: id. На этой странице отображается набор доступных ресурсов. Я хочу, чтобы у каждого ресурса была кнопка рядом с ней, которая резервирует этот ресурс для этого человека (путем создания нового экземпляра модели распределения). В качестве расширения я бы хотел несколько кнопок каждого ресурса, которые отменяют резервирование и делают другие вещи. Я также хотел бы вводить данные рядом с некоторыми кнопками, например. для выделения некоторого% ресурса.

Моя проблема заключается в том, что я не могу понять, как разумно это сделать, не повторяя себя или не имея очень хакерского контроллера. Как я могу сделать это без согласования с частью значения кнопок отправки (текст на кнопках) или с помощью любого javascript?

Кроме того, если у вас есть две формы на странице, как вы ее настроите, так что изменения в обеих формах сохраняются при нажатии любой кнопки отправки?

4b9b3361

Ответ 1

im, используя jQuery, и это то, что я сделал:

<script type="text/javascript">
    $(document).ready(function() {

        $('#bulk_print').click(function(){
            var target = '<%= bulk_print_prepaid_vouchers_path(:format => :pdf) %>';
            $('#prepaidvoucher_bulk_print').attr('action', target);
            $('#prepaidvoucher_bulk_print').submit();
        });

        $('#bulk_destroy').click(function(){
            var target = '<%= bulk_destroy_prepaid_vouchers_path %>';
            $('#prepaidvoucher_bulk_print').attr('action', target);
            $('#prepaidvoucher_bulk_print').submit();
        });

    });
</script>

<% form_tag '#', :method => :post, :id => 'prepaidvoucher_bulk_print' do %>

your form details

<button class="button" type="submit" id="bulk_print">
   <%= image_tag("web-app-theme/printer.png", :alt => "Print Selected Vouchers") %> Print Selected Vouchers
</button>

<button class="button" type="submit" id="bulk_destroy">
    <%= image_tag("web-app-theme/cross.png", :alt => "Delete Selected Vouchers") %> Delete Selected Vouchers
</button>

<% end %>

Идея состоит в том, чтобы изменить действие формы "на лету", на основе которой нажата кнопка

Ответ 2

Сделайте каждую строку в списке формой и поместите информацию о предмете, о котором идет речь. Конечно, вам нужно будет отправить и перезагрузить страницу с каждым действием. Единственный способ обойти это - использовать флажки вместо кнопок и сделать их одной большой формой - или использовать Javascript.

Что касается вашего второго вопроса, если вы хотите, чтобы кнопка отправки влияла на две "формы", вы должны сделать их частью одной и той же формы. Если вам нужно, у вас может быть несколько кнопок отправки. В противном случае вы можете динамически генерировать третью форму с Javascript, заполненным значениями из исходной формы, но это не будет работать во всех случаях (например, входы файлов).