Wicked :: Wizard :: InvalidStepError для настраиваемого действия контроллера - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть пользовательское действие в контроллере шагов, который обновляет выбор HTML на основе выбора (некоторые js в фоновом режиме), вот действие ...

class CarStepsController < ApplicationController
  include Wicked::Wizard

  skip_before_action :setup_wizard, only: [:update_make]
  before_action :logged_in_user

  steps :parts, :accessories

  def show
    @car = Car.find(params[:car_id])
    case step
    when :parts
      @vehicles = @car.vehicles.build
      @years = Vicc.select("distinct model_year").order("model_year DESC")
      @makes = Vicc.where("model_year = ?", '1980')
    when :accessories
      @accessories = @car.accessories.build
    end
    render_wizard
  end

  def update
    @car = Car.find(params[:car_id])
    @car.update_attributes(permitted_params)
    render_wizard @car
  end

  def update_make # THIS IS WHERE IT ERRORS.
    byebug
    @makes = ViccInformation.where("model_year = ?", params[:model_year])
    respond_to do |format|
      format.js
    end
  end
end

и в моих маршрутах у меня естьэто:

scope "cars/:id" do
  resources :car_steps
  get 'cars/update_make', as: 'update_make'
end

вот js, который делает вызов ajax:

  $(document).change(function () {
    console.log($("#years_select option:selected").val());
    console.log($("#car_id").val());
    $.ajax({
      url: "update_make",
      type: 'GET',
      dataType: 'script',
      data: {
        model_year: $("#years_select option:selected").val()
      },
      success: function (data) {
        console.log("success");
      },
      error: function (err) {
        console.log("err", err);
      },
    });
  });

Я получаю ошибку: Wicked::Wizard::InvalidStepError (The requested step did not match any steps defined for this controller.):, когда я выбираю опцию.После поиска в Google я обнаружил, что вам нужно добавить skip_before_action :setup_wizard, only: [:update_make] в контроллере, чтобы заставить злой камень игнорировать это действие в мастере, что я и сделал.

Однако я все еще получаю сообщение об ошибке: Wicked::Wizard::InvalidStepError (The requested step did not match any steps defined for this controller.):

Вот полный вывод консоли:

Started GET "/cars/6/car_steps/update_make?model_year=2011&_=1543867316050" for 127.0.0.1 at 2018-12-03 15:02:07 -0500
Processing by CarStepsController#show as JS
  Parameters: {"model_year"=>"2011", "_"=>"1543867316050", "car_id"=>"6", "id"=>"update_make"}
Completed 500 Internal Server Error in 0ms (ActiveRecord: 0.0ms)

Есть предложения относительно того, как решить эту проблему?

...