gpt4 book ai didi

ruby-on-rails - 在 rails 中转换路线参数

转载 作者:太空宇宙 更新时间:2023-11-03 18:28:58 28 4
gpt4 key购买 nike

在处理一个简单的 API 时,我注意到我的路由测试失败了,因为我的 :id 参数是字符串,而我正在将它们与整数值进行比较。有没有办法以某种方式通过 routes.rb 自动转换请求参数?例如,给定以下路由 (/profile/1),我希望 params[:id] 为整数 (1) 而不是字符串 ("1"):

namespace :api do
namespace :v1 do
scope '/profile' do
get ':id' => 'users#show', :id => /\d+/
end
end
end

最佳答案

一个简单的例子 from here :

match '/:id' => 'posts#show', :constraints => {:id => /^\d/}

然后你必须做

params[:id].to_i

在 Controller Action 中显式地转换它。我不确定是否有另一种方法可以直接在 routes.rb 中执行此操作,而无需猴子修补 Rails 如何收集参数。

取自Ruby on Rails Guides :

The value of params[:ids] will now be ["1", "2", "3"]. Note that parameter values are always strings; Rails makes no attempt to guess or cast the type.

关于ruby-on-rails - 在 rails 中转换路线参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7000905/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com