@Fahrenhei7

Как оставить пользователя на странице посли принятия формы?

Есть форма, после принятия которой, идет перенаправление на путь названия модели/контроллера, которое мне не нужно(перенаправление). Форма находится на главной, в БД все отправляет, только нужно сделать так, что-бы перенаправления не было, и при изменении Order.count выполнялся jquery код, а страница не перезагружаться. То, что имеем:
1. Форма. Не думаю, что пригодится для решения проблемы. Просто форма с двумя текстовыми полями и кнопка.
2. Контроллер, который является и рутом и создает новый Order
class OrdersController < ApplicationController
  def mainp
  end
  def help
  end
  def list
    @order = Order.all
  end
  def new
    @order=Order.new
  end
  def create
    @order = Order.new(order_params)
    if @order.save
      #
    else
      #
    end
  end
  def order_params
    params.require(:order).permit(:name, :phone)
  end
end

3. Файлы миграции
class CreateOrders < ActiveRecord::Migration
  def change
    create_table :orders do |t|
      t.string :name
      t.string :phone

      t.timestamps null: false
    end
  end
end

+
class AddIndexToOrdersPhone < ActiveRecord::Migration
  def change
    add_index :orders, :phone, unique: false
  end
end

4. И собственно jqery код, который должен исполняться, если Order.count поменялся
$(document).ready(function(){
  $("#success-b").on("click", function(){
    if (/*<%= assert_difference 'Order.count'*/) {
      console.log("1")
    } else {
      console.log("2")
    }
  })
})


Все примеры приблизительны и далеки от продакшена. Грубо говоря, если бы был универсальный ЯП, нужно сделать так, что-бы
def create
    @order = Order.new(order_params)
    if @order.save
      "JQUERY CODE" без перезагрузки страницы
    else
      #
    end
  end
  • Вопрос задан
  • 312 просмотров
Решения вопроса 1
@SergeyZelensky-Rostov
Jquery ajax погуглите
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@inDeepCode
<form ... action="">
не?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы