2014-02-17 48 views
0

我正在嘗試處理以下輸入。處理動態生成的導軌形式

Parameters: {"utf8"=>"✓", "authenticity_token"=>"ogwCJx5J03kvFrve1B/BQ5jBlqsGaqP2En7sAe5XcBA=", "contact_attempt_id"=>"79","3"=>"8", "7"=>"22"} 

我可以很容易地得到contact_attempt_id和response_code。最後兩個參數證明是難以捉摸的。

關鍵是問題的數據庫ID,而值是答案的數據庫ID。我試圖循環查找params哈希中的id,如下所示。

questions.each do |q| 
    if !params[q.id].nil? 
    c = contact_responses.create 
    c.question_id = q.id 
    c.answer_id = params[q.id] 
    c.save 
    end 

但是我無法得到答案ID。

回答

0

從數據庫中您的id將是一個整數。 params哈希鍵strings/symbolsHashWithIndifferentAccess

你的代碼改成這樣

questions.each do |q| 
    unless params[q.id.to_s].blank? 
    c = contact_responses.create 
    c.question_id = q.id 
    c.answer_id = params[q.id.to_s].to_i 
    c.save 
    end 
+0

仍然得到同樣的結果。 answer_id在數據庫中顯示爲nil。如果我在創建contact_response(即c.answer_id = 40)時硬編碼值,則會將其保存到數據庫。 – gsueagle2008

+0

嘗試對'params [q.id.to_s]'做一個'to_i'。修改我的回答 – usha

+0

添加to_i只是使其在數據庫中爲0,而不是正確的值。 – gsueagle2008