范围 (Scopes)

优质
小牛编辑
137浏览
2023-12-01

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) }