Ruby on rails 铁轨上镶着邪恶的宝石。数据不会更新

Ruby on rails 铁轨上镶着邪恶的宝石。数据不会更新,ruby-on-rails,ruby,data-persistence,wicked-gem,Ruby On Rails,Ruby,Data Persistence,Wicked Gem,我正在使用邪恶宝石以多个步骤创建一个对象。在我意识到数据没有保存之前,一切似乎都很正常。我注意到每当表单生成器中出现url:wizard\u path时,它都不会保存。当不存在时,无论我走哪一步,数据都会保存得很好。这就是我的对象生成器控制器的外观: class Bids::BuildController < ApplicationController include Wicked::Wizard steps :intro, :problems, :solutions, :pri

我正在使用邪恶宝石以多个步骤创建一个对象。在我意识到数据没有保存之前,一切似乎都很正常。我注意到每当表单生成器中出现
url:wizard\u 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
classbids::BuildController@bid.id)
结束
def更新
@bid=bid.find(参数[:bid\u id])
参数[:bid][:status]=“active”,如果步骤==步骤.last
@bid.attributes=params[:bid].permit(:bid\u属性)
渲染向导@bid
结束
#获取/出价/新建
def新
@bid=bid.new
重定向到向导路径(steps.first,:bid\u id=>@bid.id)
结束
结束

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

加:


对于您的
bids/build\u controller.rb

您可以检查日志中的错误吗?我的猜测是你必须列出白名单的参数。检查日志中的禁止属性error@deep我确实在日志中得到了一个错误。不允许的参数。什么是白名单参数?@在我的构建控制器中,我有这个。允许(:字段)用于我的投标模型。但是我在上面的控制器(bids/build_controller.rb)中需要这个吗?添加一个私有方法,比如def bid_params,并在方法Add params.require(:bid).permit(:status,:attribute_1,:atribute_2)中添加。注意:您需要允许通过表单获得的所有属性,然后只需使用@bid.attributes=bid_params在此处阅读有关强参数的更多信息
def build_params
  params.require(:bid).permit(:param_1,:param_2,:param_3,:etc)
end