13. 范围 (Scopes)

Rails

  • 当调用 renderredirect_to 后需要马上”返回”时,把 return 放到下一行, 不要放到同一行。
      #  错误
      render :text => 'Howdy' and return
      #  正确
      render :text => 'Howdy'
      return
      #  still bad
      render :text => 'Howdy' and return if foo.present?
      #  正确
      if foo.present?
        render :text => 'Howdy'
        return
      end
    

范围 (Scopes)

  • 当定义 ActiveRecord 的模型 scopes 时, 把内容用大括号包起来。如果不包的话, 在载入这个 class 时就会被强迫连接数据库。
      #  错误
      scope :foo, where(:bar => 1)
      #  正确
      scope :foo, -> { where(:bar => 1) }