Ruby on rails 用params查找Rails

Ruby on rails 用params查找Rails,ruby-on-rails,ruby,api,postgresql,Ruby On Rails,Ruby,Api,Postgresql,我正在构建一个API,希望通过“uid”而不是记录ID找到用户的显示页面 我的控制器里有这个 def show respond_with User.find_by_uid(params[:uid]) end 当我转到localhost/api/v1/users/88888时,它返回“Null” 按ID查找似乎很好,我在这里做错什么了吗? 我试着把它放在rails控制台中,它成功了 User.find_by_uid("8888888") 我不熟悉rails

我正在构建一个API,希望通过“uid”而不是记录ID找到用户的显示页面

我的控制器里有这个

    def show
      respond_with User.find_by_uid(params[:uid])
    end
当我转到localhost/api/v1/users/88888时,它返回“Null”

按ID查找似乎很好,我在这里做错什么了吗? 我试着把它放在rails控制台中,它成功了

    User.find_by_uid("8888888")
我不熟悉rails


谢谢

您是否尝试访问:

localhost/api/v1/users?uid=8888888
而不是您当前使用的url,除非您正确处理rails不知道
uid参数的问题
,或者您可以将其添加到
config/routes.rb
文件中

get 'users/:uid', to: 'users#show'

希望您的
控制器
被称为
userscoontroller
,然后您可以在浏览器中调用
localhost/api/v1/users/888888
,它应该按照预期的方式运行,而不仅仅是给出答案,我将提供调试Ruby应用程序(包括Rails)的技巧

获取pry gem和pry debugger gem,并将它们包含在Rails应用程序中(Google上有很多关于如何在Rails中包含pry和pry debugger的帖子)

将“binding.pry”(不带引号)放在show方法的开头。在服务器运行的控制台中,当执行show时,执行将在binding.pry处停止/暂停。在pry控制台中键入以下内容,查看rails参数散列中的可用内容

撬动>参数 (这将打印参数的内容)

我会在这里开始我的故障排除,如果你仍然无法找到它,我会在这里发布params的内容和任何相关的服务器日志

编辑
我还没有足够的代表发表评论。只有真正访问过这个网站并使用了一两天。

太好了,非常感谢,我会在5分钟内回答你:)作为一个评论比作为一个答案更好,因为它实际上没有回答OP的问题