【问题标题】:Finding records based on different fields/columns?根据不同的字段/列查找记录?
【发布时间】:2011-05-15 15:27:20
【问题描述】:

我有一个存储了一些用户信息的数据库。 我知道例如:User.find(1) 将返回 id:1 的用户

我应该拨打什么电话才能通过电子邮件查找用户?我搜索了很多,但找不到任何东西。

我也试过User.find(:email => "xyz@abc.com"),但它不起作用。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 rails-activerecord


    【解决方案1】:

    使用

    User.find_by_email("abc@xyz.com")
    

    必须检查这两个来自 railscast 的帖子(对于 rails3)

    http://railscasts.com/episodes/202-active-record-queries-in-rails-3

    http://railscasts.com/episodes/215-advanced-queries-in-rails-3

    【讨论】:

    【解决方案2】:

    也可以查询

    User.where("email = ?", "abc@xyz.com").first
    

    【讨论】:

    • 这是对 ActiveRecord 的滥用。你应该使用User.where(email: 'abc@xyz.com')
    【解决方案3】:

    万一你刚刚注册了一个用户以及通过实例找到这个特定用户并检索所有用户数据,

    1. 您想将其存储在会话中[:current_user] = @user
    2. @user = User.find_by_email(params[:email])
    3. 您希望在用户控制器的 create 方法中执行此操作。
    4. 现在您可以访问这个新的用户实例,当您希望他们为他们准备好个人资料页面时,这将很有帮助。
    5. 希望这不是太离题,如果是这样,希望这对您未来的项目有所帮助!祝你好运!

    【讨论】:

    • 欢迎来到 Stack Overflow!听起来您有一个要分享的提示,这很好,但似乎应该针对不同的问题。它似乎不像一个与这个问题相匹配的“答案”。 Stack Overflow 试图在问题和答案之间保持非常紧密的匹配。如果愿意,您甚至可以提出自己的问题并自己回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2013-01-01
    • 2014-12-04
    • 2012-10-31
    • 2018-08-15
    • 1970-01-01
    相关资源
    最近更新 更多