我正在构建一个API,并希望通过'uid'而不是记录ID来找到用户的显示页面
我在控制器中有这个
def show
respond_with User.find_by_uid(params[:uid])
end
当我去localhost / api / v1 / users / 8888888时它返回“Null”
通过ID查找似乎工作正常,我在这里做错了吗? 我试过将它放在rails控制台中并且工作正常
User.find_by_uid("8888888")
我是rails的新手
由于
答案 0 :(得分:0)
你试过访问:
localhost/api/v1/users?uid= 8888888
代替您当前使用的网址,除非您正在处理正确的铁路不知道uid param
,否则您可以将其添加到您的config/routes.rb
文件
get 'users/:uid', to: 'users#show'
希望您的controller
被调用UsersController
,然后您可以在浏览器中调用localhost/api/v1/users/8888888
,它应该按预期运行
答案 1 :(得分:0)
我将提供有关调试Ruby应用程序(包括Rails)的提示,而不仅仅是给出答案。
获取pry gem和pry-debugger gem并将它们包含在你的Rails应用程序中(Google上有大量关于如何在Rails中包含pry和pry-debugger的帖子。)
在show方法的开头加上'binding.pry'(不带引号)。在运行服务器的控制台中,当show执行时,执行将在binding.pry处暂停/暂停。在pry控制台中键入以下内容,以查看rails params hash中可用的内容。
撬> PARAMS (这将打印出params的内容)
我会在这里开始我的故障排除,如果您仍然无法弄明白,请发布params的内容以及此处记录的任何相关服务器。
修改的 我还没有足够的代表发表评论。只是真的在这个网站上使用它一两天。