- 学习 Ruby on Rails
- Rails 2.1 主页
- Rails 2.1 简介
- Rails 2.1 安装
- Rails 2.1 框架
- Rails 2.1 目录结构
- Rails 2.1 示例
- Rails 2.1 数据库设置
- Rails 2.1 活动记录
- Rails 2.1 迁移
- Rails 2.1 控制器
- Rails 2.1 视图
- Rails 2.1 布局
- Rails 2.1 脚手架
- Rails 2.1 和 AJAX
- Rails 2.1 上传文件
- Rails 2.1 发送电子邮件
- 高级 Ruby on Rails 2.1
- Rails 2.1 RMagick 指南
- Rails 2.1 基本 HTTP 身份验证
- Rails 2.1 错误处理
- Rails 2.1 路由系统
- Rails 2.1 单元测试
- 高级 Ruby on Rails 2.1
- Rails 2.1 技巧与窍门
- 快速参考指南
- 快速参考指南
- Ruby on Rails 2.1 有用资源
- Ruby on Rails 2.1 - 资源
- Ruby on Rails 2.1 - 讨论
Ruby on Rails 2.1 - 使用 with_scope 进行嵌套
以下示例展示了如何嵌套 with_scope 以根据要求获取不同的结果。
# SELECT * FROM employees
# WHERE (salary > 10000)
# LIMIT 10
# Will be written as
Employee.with_scope(
:find => { :conditions => "salary > 10000",
:limit => 10 }) do
Employee.find(:all)
end
现在,查看另一个示例,介绍范围的累积方式。
# SELECT * FROM employees
# WHERE ( salary > 10000 )
# AND ( name = 'Jamis' ))
# LIMIT 10
# Will be written as
Employee.with_scope(
:find => { :conditions => "salary > 10000",
:limit => 10 }) do
Employee.find(:all)
Employee.with_scope(
:find => { :conditions => "name = 'Jamis'" }) do
Employee.find(:all)
end
end
以下示例展示了如何忽略之前的范围。
# SELECT * FROM employees
# WHERE (name = 'Jamis')
# is written as
Employee.with_scope(
:find => { :conditions => "salary > 10000",
:limit => 10 }) do
Employee.find(:all)
Employee.with_scope(
:find => { :conditions => "name = 'Jamis'" }) do
Employee.find(:all)
end
# all previous scope is ignored
Employee.with_exclusive_scope(
:find => { :conditions => "name = 'Jamis'" }) do
Employee.find(:all)
end
end
rails-quick-guide.htm
广告