【问题标题】:How can I get the User ID from my database -- rails如何从我的数据库中获取用户 ID——rails
【发布时间】:2016-01-01 13:49:23
【问题描述】:

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

@user = User.where(:email => params[:email])
@user.id 

但是,这会返回错误。

NoMethodError (undefined method `id' for #<User::ActiveRecord_Relation:....

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

感谢任何帮助。

谢谢。

附:不想使用 current_user,因为这是使用 API 密钥而不是 DEVISE SESSIONS 完成的。

【问题讨论】:

    标签: ruby-on-rails ruby devise


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢!有用!还是不明白我是怎么错过这个简单的基本点的..哈哈..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 2017-12-24
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 2021-11-09
    相关资源
    最近更新 更多