当前位置:首页 > 网站旧栏目 > 学习园地 > 设计软件教程 > 每天一剂Rails良药之DRY Up Your ActiveRecord Code With Scoping

每天一剂Rails良药之DRY Up Your ActiveRecord Code With Scoping
2010-01-14 07:02:23  作者:  来源:
Rails真的是在搜肠刮肚挖空心思想方设法的给代码减肥瘦身,这次我们来看看with_scope方法
Java代码 复制代码
  1. class PostsController < ApplicationController   
  2.   before_filter :scope_posts_to_user   
  3.   
  4.   def show   
  5.     @posts = Post.find(:all)   
  6.   end   
  7.   
  8.   def create   
  9.     @post = Post.create(params[:post])   
  10.   end   
  11.   
  12.   private  
  13.   
  14.   def scope_posts_to_user   
  15.     Post.with_scope({   
  16.       :find => {:conditions => ['user_id = ?'@user.id]},   
  17.       :create => {:user =. @user}   
  18.     }) { yield }   
  19.   end  

上面的yield块也可以用来find或create Post
with_scope方法还可以嵌套scope,详见http://api.rubyonrails.com/classes/ActiveRecord/Base.html#M001024

安徽新华电脑学校专业职业规划师为你提供更多帮助【在线咨询