rails3 named_scope

rails 2从has_finder演变而来的named_scope是非常实用的特性,能够非常容易地扩展自有的功能。
rails3中ActiveRecord的改动较大,比起之前的版本代码可读性、扩展性增加了不少,逐渐适应嘛。

下面是rails3中named_scope的实例,借用了张先生Rails Best Practices中的例子代码:

class Post < ActiveRecord::Base
  has_many :comments
end
class Comment < ActiveRecord::Base
  belongs_to  :post
  scope nly_valid, where(:is_spam => false)
  scope :limit, lambda { |size| where(:limit => size) }
end
class CommentsController < ApplicationController
  def index
    @comments = @post.comments.only_valid.limit(10)
  end
end

参考
1. Active Record Query Interface. http://guides.rails.info/active_record_querying.html
2. ihower's Best Practices的演讲. http://ihower.tw/blog/archives/3075

你可能感兴趣的:(html,Blog,Rails,ActiveRecord)