1

我正在使用 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
4

1 回答 1

1

您在评论中提到您允许投标控制器中的参数。将它们添加到您的构建控制器。由于您在此控制器中构建对象,因此它需要访问允许的参数。

添加:

def build_params
  params.require(:bid).permit(:param_1,:param_2,:param_3,:etc)
end

给你的bids/build_controller.rb

于 2014-06-04T05:02:36.110 回答