原文參考:
http://rails-bestpractices.com/posts/1-move-finder-to-named_scope
壞習慣:
下面的代碼看了就讓人感覺不舒服,不但寫的繁雜,而且也不美觀...
class PostsController < ApplicationController
def index
@published_posts = Post.find(:all, :conditions => { :state => 'published' },
:limit => 10,
:order => 'created_at desc')
@draft_posts = Post.find(:all, :conditions => { :state => 'draft' },
:limit => 10,
:order => 'created_at desc')
end
end
我們可以用name_scope來拯救它...
清新一個伶俐一個燦爛一個,大嘴巴子抽Y的:
class PostsController < ApplicationController
def index
@published_posts = Post.published
@draft_posts = Post.draft
end
end
class Post < ActiveRecord::Base
named_scope :published, :conditions => { :state => 'published' },
:limit => 10,
:order => 'created_at desc'
named_scope :draft, :conditions => { :state => 'draft' },
:limit => 10,
:order => 'created_at desc'
end
分享到:
相关推荐
它通过将 named_scope 组合为 SQL 片段来组装查询。 适用于动态构建复杂SQL。设置GongoDB 使用 PDO 扩展连接数据库。 include "gongo.php";$pdo = new PDO("mysql:host=localhost;dbname=dbname", "user", ...
问题ImportError: No module named _curses解决资源 问题解决地址 http://blog.csdn.net/qq_19299071/article/details/56013485
放到lib/python2.7/lib-dynload/下解决Python2的No module named _sqlite3问题
`named_enum-1.1.0.tar.gz` 是一个针对Python编程语言的库,名为 `named_enum` 的版本1.1.0的压缩包。这个库主要关注的是枚举...通过这种方式,可以使用有意义的名字代替硬编码的数字或字符串,使得代码更加清晰。
【标题】"Named_Vas_expertadvisor_mt4_VAS_" 提供的信息表明,这是一个专为MetaTrader 4(MT4)平台设计的自动化交易顾问,名为"Named Vas",并且它与VAS(可能是Value at Stake的缩写)系统有关。在外汇交易中,...
`scope_guard`是一种在C++编程中用于实现资源获取即初始化(RAII,Resource Acquisition Is Initialization)原则的机制...通过使用`scope_guard`,开发者可以避免手动管理资源的繁琐,减少错误,并确保程序的健壮性。
编译安装Python3.7报错ModuleNotFoundError: No module named '_ctypes',所需安装包
标题“sem_named_lock.rar_between”暗示了我们正在讨论一个使用命名信号量(semaphore)来在不同进程间同步资源的实现。在这个场景中,信号量是作为一种锁机制,类似于互斥锁(mutex),但它的作用范围更广,可以...
在使用Python进行编程时,有时会遇到`ModuleNotFoundError: No module named '_bz2'`这样的错误,这通常意味着你的Python 3环境缺少了一个名为_bz2的模块。这个模块是Python 3内置的,用于处理BZip2压缩格式的数据。...
标题中的"Named_tester EA_hedgeEA_expertadvisor_ea_mt4_strategy_"表明这是一个用于MetaTrader 4(MT4)交易平台的自动交易策略,也就是常说的Expert Advisor(EA)。"HedgeEA"提示我们这个EA可能采用了对冲交易...
named_let named_let可用于使rspec的输出更易于阅读。 它是let的包装函数。 named_let(:name){ obj }将返回'obj#to_s'和'obj#inspect'的值更改为:name,然后将'rspec -format d'的输出消息改进为更具可读性。 ...
python3.7 pandas执行失败,报"no module named '_bz2'"的错误。将资源下载下来,然后放到python3.7相应的目录python3/lib/python3.7/lib-dynload下。再给资源可执行权限:chmod 755 _bz2.cpython-37m-x86_64-linux-...
文字的 有关更多文档,请访问 。 描述: Textacular公开了PostgreSQL全文...您的模型现在可以使用搜索方法: #basic_search方法是您可能期望的:从字面上看您要发送给它的内容,而对输入没有任何幻想: Game . basi
命名实体识别和分类(Named Entity Recognition and Classification,简称NERC)是自然语言处理(Natural Language Processing,简称NLP)中的一个基础任务,主要针对文本中的命名实体进行识别和分类,如人名、组织名、...
在Python编程过程中,有时会遇到导入模块时遇到错误,例如"ImportError: No module named _ssl"。这个错误通常表示Python无法找到SSL模块,该模块是Python标准库的一部分,用于处理安全套接层(SSL)和传输层安全...
- 调用`scope`时,可以直接在模型类上调用相应的类方法。 - 这些方法可以链式调用,以便进一步过滤结果集。 例如,可以这样使用: ```ruby Cat.tabby.first # 返回第一个tabby猫 Cat.tabby.count # 计算tabby猫...
总的来说,【generate_named_acl】是一个用Dart编写的,遵循BSD风格的命令行工具,它的目标是帮助用户自动生成命名访问控制列表。通过理解Dart的基本语法、命令行交互、以及良好的项目组织结构,开发者可以深入研究...
例如,你可能先创建一个连接池,然后使用`named_sql.js`的实例来执行SQL查询: ```javascript const pg = require('pg'); const NamedSql = require('named_sql.js'); const pool = new pg.Pool({ // 连接配置 })...
在本文中,我们将深入探讨如何使用TCP(Transmission Control Protocol)函数来创建一个名为"Named Service_db8_tcp"的命名服务,以及如何通过该服务向客户端虚拟仪器(VI,Virtual Instrument)发送数据。...