Rails злой драгоценный редирект с params

Я использую злой драгоценный камень для создания мастера формы. В документации он использует объект current_user, но я хочу использовать другой объект. Я борюсь с добавлением параметра в redirect_to, чтобы я мог использовать этот объект.

products_controller.rb

def create
  @product = current_user.product.build(params[:product])
  @product.ip_address = request.remote_ip

  if @product.save
    redirect_to product_steps_path # This is where I think I need to pass product object but not sure how
  else
    render 'new'
  end
end

product_steps_controller.rb

class ProductStepsController < ApplicationController
  include Wicked::Wizard
  steps :apps, :templates

  def show
    @product = Product.find(params[:id])
    render_wizard
  end
end

маршруты:

resources :products
resources :product_steps

Ошибка, которую я получаю с приведенным выше кодом:

ActiveRecord::RecordNotFound in ProductStepsController#show

Couldn't find Product with id=apps

Как использовать злой драгоценный камень на конкретном объекте, подобном этому, вместо примера current_user в документации?

2 ответа

Это то, что я получил на работу.

products_controller.rb

if @product.save
  redirect_to product_step_path(:id => "apps", : product_id => @ product.id)
else
...

product_steps_controller.rb

def show
  @asset = Asset.find(params[:asset_id])
  render_wizard
end

Волшебный драгоценный камень берет :id параметр в качестве имени шага. Так что не стоит сдавать :id в качестве параметра, поскольку он будет конфликтовать с именем шага.

products_controller.rb

redirect_to product_step_path(product_id: @product.id)

product_steps_controller.rb

@product = Product.find(params[:product_id])
Другие вопросы по тегам