0
我在如何將以下控制器操作寫入一行中掙扎。我很難弄清楚如何研究答案,甚至是正確的術語,因爲我是Rails和Ruby的新手。我如何將以下內容寫成一行?Rails - 用於在控制器中組合語句的語法
Response.create(params[:response].values)
Response.create(:responseset_id => @responseset.id)
我在如何將以下控制器操作寫入一行中掙扎。我很難弄清楚如何研究答案,甚至是正確的術語,因爲我是Rails和Ruby的新手。我如何將以下內容寫成一行?Rails - 用於在控制器中組合語句的語法
Response.create(params[:response].values)
Response.create(:responseset_id => @responseset.id)
Response.create(params[:response].merge({:responseset_id => @responseset.id})
回答下列反饋:
params[:response].each do |k,v|
Response.create({:question_id => k, :response_set_id => @responseset.id}.merge(v))
end
謝謝。但是,我需要保留'.values',否則我的代碼會中斷。如何在'.values'中添加上述語句?我嘗試了一些不同的變化,但沒有成功。 – diasks2
這會給你一個值的數組,雖然沒有數據的關鍵應該是什麼。什麼是params [:response]?你是否試圖創建一個響應,每個params [:response]或其他東西? – TomDunning
例如:params [:response] = {「2」=> {「user_answer」=>「3」},「3」=> {「user_answer」=>「4」} ...等等}。我無法直接使用提交的參數,因此我必須採用params [:response],然後將散列轉換爲數組:[{「user_answer」=>「3」,「question_id」=>「2」} ,{「user_answer」=>「4」,「question_id」=>「3」}等等]。它來自我的觀點:'<%= fields_for「response [#{q.id}]」do | f | %>' – diasks2