2014-02-12 70 views
0

我正在嘗試在我的控制器上創建一個申請人,我可以在applicant_params方法中看到params,並且可以使用pry訪問哈希以驗證哈希是否正確。當create方法啓動時,所有的@applicant值都是nil?我必須在這裏錯過一些基本的東西?Rails 4 Strong參數問題

def applicant_params 
    params.require(:applicant).permit(
    :first_name, :last_name, :email_address, :contact_number, 

    binding.pry 
end 

def create 
    @applicant = Applicant.new(applicant_params) 
    binding.pry 
    respond_to do |format| 
    if @applicant.save 
     format.html { redirect_to @applicant, notice: 'Applicant was successfully created.' } 
     format.json { render action: 'show', status: :created, location: @applicant } 
    else 
     binding.pry 
     format.html { render action: 'new' } 
     format.json { render json: @applicant.errors, status: :unprocessable_entity } 
    end 
    end 
end 

回答

0

它是否仍然失敗,而不binding.pry?該呼叫返回零,並將攪亂事情...

+0

我不知道它爲什麼失敗。我可以在斷點處看到正確的參數。然後,當它返回到創建方法時,@applicant只有nil值。我創建了一個新項目並移動了一些東西,它似乎在工作。不知道在生成過程中是否失敗了? – madhatter84gn

+0

我仍然懷疑關於斷點。 'binding.pry'只是另一個Ruby表達式,它的返回值('nil')將是'applicant_params'返回的值。 –

+0

也許我沒有解釋得很好馬特,在applicant_params內的那個點,那裏的斷點(binding.pry)顯示了正確的params散列。所以在那個點上,如果我說明它的價值。然後它繼續回到創建方法,並且申請者變量具有所有零值。我檢查了所有屬性的拼寫,花了相當多的時間仔細檢查了所有內容。一旦我最終放棄並創建了一個虛擬項目並運行一個腳手架以查看和語法與我的相同。所以我重新創建了這個項目,現在一切正常。你的猜測和我一樣好。 – madhatter84gn