Рубрики
Ruby on Rails Программирование

Rails, получение данных с помощью AJAX

Отправляем запрос с помощью AJAX этот код будет выполняться каждый раз при загрузке страницы. Можно сделать запрос с помощью ссылки. Это роли не играет

<script>
  jQuery(function(){
      $.ajax({
        url: ("/admin/order_detail_remote?order_id="+orderId),
        type: 'GET'
    });
  })
</script>Code language: JavaScript (javascript)

Сделаем контроллер который будет обрабатывать полученные данные

def order_detail_remote
    
    @order = Shopping::Order.find(params[:order_id])
    @order_id = params[:order_id]

    if current_user.rep
      if not ((@order.customer.division_reps.values.include? current_user.repcode) || (@order.customer.sales_rep_1 == current_user.repcode) || (@order.customer.sales_rep_2 == current_user.repcode))
        @order = nil
      end
    end

    respond_to do |format|
      if @order
        format.js { @order }
      else
        format.js { @error_remote_response = "Order information didn't find" }
      end
    endCode language: Ruby (ruby)

Так как у мы используем «format.js» в ответе контроллера, мы должны использовать «app/views/admin/order_detail_remote.js.erb» обратите внимание на формат (‘js.erb’)

$("#<%= j (@order_id) %> .order_more-info").html("<%= escape_javascript(render partial: 'order_detail_remote', locals: { order_remote: @order, error: @error_remote_response } ) %>"); Code language: JavaScript (javascript)

Так же мы должны использовать ‘partial’ «app/views/admin/_order_detail_remote.html.erb». Эта часть кода будет нашим ответом запроса. В нашем случае мы отправим в div. Посмотрите еще раз на файл и обратите внимание на первую часть в коде выше.

Хорошие статьи

https://coderwall.com/p/kqb3xq/rails-4-how-to-partials-ajax-dead-easy

https://guides.rubyonrails.org/working_with_javascript_in_rails.html

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *