2017-06-01 78 views
1

我在rails控制器中使用強參數時遇到問題。這裏是我的代碼:內容修改後,Rails中的強參數忽略參數

def request_params 
    params[:req][:emails] = params[:req][:emails].delete(' ').split(/\r\n|\n|,/).reject(&:blank?).dup 
    params.require(:req).permit(:emails, :body, :link, :other, :attributes)   
end 

@request = Request.new(request_params) 

當Request對象與request_params創建,emails參數是出於某種原因被忽略。

解析參數後有沒有任何理由不允許這個參數?

我不得不爲了明確指定電子郵件屬性來解決這個問題:

@request.emails = params[:req][:emails] 

,但我想知道是否有一個更清晰的解決方案。

在此先感謝。

+0

https://stackoverflow.com/questions/19399046/how-to-make-changes-to-strong-parameters-改到小寫 – Pavan

回答

1

爲什麼你試圖在允許它們之前操作參數?您應該在保存模型之前/之後修改它。

如果你仍然想這樣做,嘗試這樣的事情:

def request_params 
    temp = params.require(:req).permit(:emails, :body, :link, :other, :attributes) 
    temp[:req][:emails] = temp[:req][:emails].delete(' ').split(/\r\n|\n|,/).reject(&:blank?).dup 
    temp.permit! 
end