Rails通过params找到

时间:2014-01-25 20:04:28

标签: ruby-on-rails ruby api postgresql

我正在构建一个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的新手

由于

2 个答案:

答案 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的内容以及此处记录的任何相关服务器。

修改的 我还没有足够的代表发表评论。只是真的在这个网站上使用它一两天。