Strong Parameters in Rails 内容修改后忽略一个参数
Strong Parameters in Rails ignores a parameter after the content is modified
我在 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 创建请求对象时,emails
参数由于某种原因被忽略。
解析后有什么理由不允许这个参数?
为了解决问题,我必须明确分配电子邮件属性:
@request.emails = params[:req][:emails]
但我想知道是否有更清晰的解决方案。
提前致谢。
为什么你在允许之前尝试操纵参数?您应该修改它 before/after 保存在模型中。
如果您仍然想这样做,请尝试这样的操作:
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
我在 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 创建请求对象时,emails
参数由于某种原因被忽略。
解析后有什么理由不允许这个参数?
为了解决问题,我必须明确分配电子邮件属性:
@request.emails = params[:req][:emails]
但我想知道是否有更清晰的解决方案。
提前致谢。
为什么你在允许之前尝试操纵参数?您应该修改它 before/after 保存在模型中。
如果您仍然想这样做,请尝试这样的操作:
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