2014-04-18 4 views
1

Wicked gem을 사용하여 여러 단계로 개체를 만듭니다. 데이터가 저장되지 않는다는 것을 알기 전까지는 모든 것이 잘 작동하는 것처럼 보였습니다. url: wizard_path이 양식 작성 도구에있을 때마다 절약되지 않는 것으로 나타났습니다. 그것이 없으면 데이터가 어느 단계에 있는지에 상관없이 데이터를 저장합니다. 개체 빌더에 대한 내 컨트롤러는 다음과 같습니다.Wicked gem이있는 레일. 데이터가 업데이트되지 않습니다

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

당신이 오류에 대한 로그를 확인 할 수 있나요? 내 생각 엔 매개 변수를 백지 목록에 넣어야한다는 것입니다. 금지 된 속성 오류에 대한 로그를 확인하십시오. – Monideep

+0

@deep 로그에 오류가 발생했습니다. 허용되지 않는 매개 변수. 화이트 리스팅 매개 변수 란 무엇입니까? – Jordan

+0

@deep 빌드 컨트롤러에서 내 입찰 모델에 대해이 .permit (: fields)을 사용합니다. 하지만 위의 컨트롤러 (bids/build_controller.rb)에서이 작업이 필요합니까? – Jordan

답변

1

입찰가 컨트롤러에서 매개 변수를 허용하고 있음을 언급하셨습니다. 빌드 컨트롤러에 추가하십시오. 이 컨트롤러에 객체를 작성하기 때문에 허용 된 매개 변수에 액세스 할 수 있어야합니다.

추가 :

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

bids/build_controller.rb

+0

예 , 그것은 효과가 있었다. 내가 필요한 것. 감사. – Jordan