如何解决如何使用 Rails 向强参数添加新项目?
Rails 版本:5
我想从前端向 rails 发布一个名为 urls
的新项目。
export function printPosts(params) {
const endpoint = `v1/posts/print`
return http.post(endpoint,params).then(({ data }) => data)
}
但是在 post
对象中,没有命名为 urls
的项目。
像 id
、title
、body
、url
之类的东西。
当我发布到这个端点时,日志显示
<ActionController::Parameters {"urls"=>"https://www.example.com/post/url/1\nhttps://www.example.com/post/url/2","format"=>:json,"controller"=>"v1/posts","action"=>"print","post"=>{}} permitted: false>
undefined method `strip' for 1:Integer
permitted: false
可能意味着 urls
不允许发送。
我将它添加到 rails 的 app/controllers/v1/posts_controller.rb
控制器
private
def post_params
params.permit(
:urls
)
end
然后打印它的值:
def print
p post_params.to_h.symbolize_keys
end
<ActionController::Parameters {"urls"=>"https://www.example.com/post/url/1\nhttps://www.example.com/post/url/2","post"=>{}} permitted: false>
Unpermitted parameters: :format,:post
{:urls=>"https://www.example.com/post/url/1\nhttps://www.example.com/post/url/2"}
undefined method `strip' for 1:Integer
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。