Ruby开发无法解析请求params哈希 无法获取email值如何解决?
问题原因
从你打印的参数结构可以看到,email字段是嵌套在contact二级哈希下的,并非params的一级属性,所以直接从根params调用params[:email]或者params["email"]都无法获取到值。
正确提取方法
Rails的参数哈希默认是HashWithIndifferentAccess类型,支持字符串和符号键混用,你可以用任意一种方式直接取值:
# 符号键写法 params[:contact][:email] # 字符串键写法 params["contact"]["email"]
推荐实践
按照Rails安全规范,建议先定义强参数方法过滤合法字段,再取值,避免非法参数注入:
# 在对应Controller的私有区域定义强参数方法 private def contact_params params.require(:contact).permit( :name, :phone, :email, :image_url, :website, :location_info, :bio, tag_ids: [], category_ids: [] ) end
之后可以通过以下方式获取经过安全校验的email值:
contact_params[:email]
内容的提问来源于stack exchange,提问作者user2799827
相关产品推荐
相关产品推荐

