我正在使用Wicked gem以多个步骤创建一个对象。一切似乎工作正常,直到我意识到数据没有保存。我注意到,只要表单构建器中存在url: wizard_path
,它就不会保存。当那不存在时,无论我在哪一步,数据都会保存得很好。这是我的对象构建器的控制器:
class Bids::BuildController < ApplicationController
include Wicked::Wizard
steps :intro, :problems, :solutions, :pricing
def show
@bid = Bid.find(params[:bid_id])
render_wizard
end
def create
@bid = Bid.new(bid_params)
redirect_to wizard_path(steps.first, :bid_id => @bid.id)
end
def update
@bid = Bid.find(params[:bid_id])
params[:bid][:status] = 'active' if step == steps.last
@bid.attributes = params[:bid].permit(:bid_attribute)
render_wizard @bid
end
# GET /bids/new
def new
@bid = Bid.new
redirect_to wizard_path(steps.first, :bid_id => @bid.id)
end
end
答案 0 :(得分:1)
您在评论中提到您允许出价控制器中的参数。将它们添加到构建控制器。由于您在此控制器中构建对象,因此需要访问允许的参数。
添加:
def build_params
params.require(:bid).permit(:param_1,:param_2,:param_3,:etc)
end
到bids/build_controller.rb