新手问题 fetch_by_uniq_keys 这个方法表示什么意思呢?

msl12 · 2016年04月13日 · 最后由 msl12 回复于 2016年04月13日 · 2530 次阅读

看 Ruby-China 的源码有个地方不太明白

def self.find_by_email(email)
    fetch_by_uniq_keys(email: email)
  end

  def self.find_login!(slug)
    find_login(slug) || fail(ActiveRecord::RecordNotFound.new(slug: slug))
  end

  def self.find_login(slug)
    return nil unless slug =~ ALLOW_LOGIN_CHARS_REGEXP
    slug = slug.downcase
    fetch_by_uniq_keys(login: slug)
  end

  def self.find_by_login_or_email(login_or_email)
    login_or_email = login_or_email.downcase
    fetch_by_uniq_keys(login: login_or_email) || fetch_by_uniq_keys(email: login_or_email)
  end

这是 Model 里的 User.rb 里的一段代码,里面我看到 fetch_by_uniq_keys 这个方法

我搜索了一下整个源码,发现没有方法的定义,看来是 User 这个类里面继承的一个方法,请问这个是表示什么意思呢,从哪继承来的呢?

还有一个小问题,就是ruby fail(ActiveRecord::RecordNotFound.new(slug: slug))这句代码也是继承来的吧,表示什么意思呢?

谢谢各位

#1 楼 @huacnlee 这 gem 果然好东西,学习了

#1 楼 @huacnlee

fail(ActiveRecord::RecordNotFound.new(slug: slug))

表示什么意思呢?找了好久,不明白

ActiveRecord 5 里面的抛错新方法,大概就是抛一个没有找到的错误

需要 登录 后方可回复, 如果你还没有账号请 注册新账号