gpt4 book ai didi

ruby-on-rails - 为什么在为特定用户使用带有参数的 get 方法时我仍然得到所有用户?

转载 作者:数据小太阳 更新时间:2023-10-29 08:44:38 24 4
gpt4 key购买 nike

我正在使用 Rails 4.2.4 和 Ruby 2.2.3

这是我的 users_controller.rb

class Api::UsersController < ApplicationController
def index
@users = User.all
render json: @users
end

def show
@user = User.where('email = ?', params[:email]).first
if @user.present?
render json: {info: 'Find a user'}
else
render json: {error: 'User not found'}
end
end
end

这是我的路由文件

Rails.application.routes.draw do
namespace :api do
resources :users
end
end

我正在尝试构建 Rails API。

当我使用此 url 发送 postman 时

localhost:3000/api/users

我可以得到所有用户。(总共3个)

然后我使用这个 url 发送给 postman

localhost:3000/api/users?email=example.com

我仍然得到所有用户,我确信只有一个用户匹配此电子邮件。

问题出在哪里?我想得到{info: 'Find a user'}。

最佳答案

这是因为这个url触发索引:

localhost:3000/api/users?email=example.com

将您的请求发送至:

localhost:3000/api/users/example.com

并改变你的路线:

resources :users do
member do
get 'users/:email', to: 'users#show'
end
end

关于ruby-on-rails - 为什么在为特定用户使用带有参数的 get 方法时我仍然得到所有用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33375565/

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