如何从我的数据库中获取用户ID - rails

Nin*_*Boy 1 ruby ruby-on-rails devise

我在轨道上使用Devise进行身份验证.现在我正在构建一个API,其中有一个实例,我需要返回用户的id,其中包含作为参数发送的电子邮件.简单地说,用户输入电子邮件并获取其用户ID作为结果.我正在使用GRAPE for API.

@user = User.where(:email => params[:email])
@user.id 
Run Code Online (Sandbox Code Playgroud)

但是,这会返回错误.

NoMethodError (undefined method `id' for #<User::ActiveRecord_Relation:....
Run Code Online (Sandbox Code Playgroud)

现在我想知道如何通过电子邮件检索用户的ID?

感谢任何帮助.

谢谢.

PS不想使用current_user,因为这是使用API​​密钥而不是DEVISE SESSIONS完成的.

sev*_*cat 7

调用User.where将始终返回ActiveRecord :: Relation - 用户记录列表,即使列表包含一个(或零!)记录.

如果您希望只获得一条记录,则可以使用User.find_by,例如.User.find_by(email: params[:email]).这将返回您可以调用的用户记录id,或者nil没有用户匹配的用户记录.