如何干掉这段Ruby代码?

Ale*_*dre 0 ruby-on-rails dry

这让我很烦.它看起来不太干燥.什么是更好的实施?顺便说一句,为什么这个ActiveRecord查找器在找不到记录时不会抛出异常,但是.find呢?

  def current_account
    return @account if @account
    unless current_subdomain.blank?
      @account = Account.find_by_host(current_subdomain)
    else
      @account = nil
    end
    @account
  end
Run Code Online (Sandbox Code Playgroud)

Lou*_*ell 5

def current_account  
  @account ||= current_subdomain && Account.find_by_host(current_subdomain)
end
Run Code Online (Sandbox Code Playgroud)

如果未找到记录,则动态find_by方法返回nil,find_by_all返回空数组.