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])