我在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_params创建Request对象时,emails
参数由于某种原因被忽略。
在解析参数后是否有任何理由不允许此参数?
我必须明确指定电子邮件属性才能解决问题:
@request.emails = params[:req][:emails]
但我想知道是否有更清晰的解决方案。
提前致谢。
答案 0 :(得分: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