如何使用 GET 在 Rails api 中将参数作为哈希传递?

发布于 2025-01-11 12:16:01 字数 449 浏览 0 评论 0原文

我尝试使用邮递员将参数作为网址中的散列传递,

http://localhost:3000/api/v1/bill?album=3&song=4&song=7&album=6 

我使用此代码来获取参数

 def param_hash
    params.permit(:album, :song)
  end

并打印此值 param_hash.to_h

这是我想要的值{"album"=3 、“歌曲”=>4、“专辑”=>6、“歌曲”=>7} 但实际上,这就是我得到的 {"album"=>6, "song"=>7} ,最后只有 1 个哈希值。

有没有办法获取url中的所有哈希值?

I try to pass params as a hash in url with postman like this

http://localhost:3000/api/v1/bill?album=3&song=4&song=7&album=6 

I use this code to get param

 def param_hash
    params.permit(:album, :song)
  end

and print this value param_hash.to_h

This is a value i want {"album"=3, "song"=>4, "album"=>6, "song"=>7}
But in reality that's what i got {"album"=>6, "song"=>7} , just have only 1 hash in last.

Is there anyway to take all hash value in url?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

尸血腥色 2025-01-18 12:16:01
def param_hash
  params.permit(album: [], song: [])
end
http://localhost:3000/api/v1/bill?album[]=3&song[]=4&song[]=7&album[]=6 

根据 https://github.com/rails/strong_parameters

允许的标量类型为 String、Symbol、NilClass、Numeric、TrueClass、FalseClass、Date、Time、DateTime、StringIO、IO、ActionDispatch::Http::UploadedFile 和 Rack::Test::UploadedFile。

要声明 params 中的值必须是允许的标量值的数组,请将键映射到空数组:

params.permit(:id => [])

def param_hash
  params.permit(album: [], song: [])
end
http://localhost:3000/api/v1/bill?album[]=3&song[]=4&song[]=7&album[]=6 

According to https://github.com/rails/strong_parameters

The permitted scalar types are String, Symbol, NilClass, Numeric, TrueClass, FalseClass, Date, Time, DateTime, StringIO, IO, ActionDispatch::Http::UploadedFile and Rack::Test::UploadedFile.

To declare that the value in params must be an array of permitted scalar values map the key to an empty array:

params.permit(:id => [])

三生池水覆流年 2025-01-18 12:16:01
http://localhost:3000/api/v1/bill?data={album: 3,song: 4,song: 7,album: 6 }

使用上述逻辑并允许“数据”对象。

http://localhost:3000/api/v1/bill?data={album: 3,song: 4,song: 7,album: 6 }

Use the above logic and permit the 'data' object.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文