原文參考:http://rails-bestpractices.com/posts/13-keep-finders-on-their-own-model
不可改變你那壞習慣
class Post < ActiveRecord::Base
has_many :comments
def find_valid_comments
self.comment.find(:all, :conditions => {:is_spam => false},
:limit => 10)
end
end
class Comment < ActiveRecord::Base
belongs_to :post
end
class CommentsController < ApplicationController
def index
@comments = @post.find_valid_comments
end
end
用name_scope重構下-->
重構威武:
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
named_scope :only_valid, :conditions => { :is_spam => false }
named_scope :limit, lambda { |size| { :limit => size } }
end
class CommentsController < ApplicationController
def index
@comments = @post.comments.only_valid.limit(10)
end
end
分享到:
相关推荐
"发现者",这个项目可能是一个关于Web开发的开源工具或框架,命名为"finders"。考虑到标签为"HTML",我们可以推测它可能与HTML相关的搜索、解析或者内容提取有关。在Web开发中,HTML(HyperText Markup Language)是...
200, SICK LMS-100, and Hokuyo URG 04-LX laser-range finders, control of the pan-tilt-zoom camera or pan-tilt unit, Pioneer Gripper and Arm, and more. (Some other devices are supported by separate ...
nokogiri_bang_finders 这颗宝石说“Nokogiri,如果你找不到我想要的 XML,请大喊大叫。” 例如: doc = Nokogiri :: XML ( "<root><aliens><alien><name>Alf</name></alien></aliens></root>" ) doc . at ( '...
寻找者守护者背景和概述Finders Keepers是一个利用MERN的网络应用程序,该应用程序允许用户发布免费赠品,供其他人领取。 拥有帐户的用户可以创建他们想要免费赠送的物品图片的帖子。 因果用户(没有帐户的用户)将...
版本号:OpenCV-4.1.1、opencv_contrib-4.1.1、Visual Studio 2015。 基于OpenCV4.1.1帮助文档内Examples的stitching_detail.cpp改编。 包括提取特征点、特征点匹配、特征点提纯、预估相机参数、全面细化相机参数、...
Python参考手册,官方正式版参考手册,chm版。以下摘取部分内容:Navigation index modules | next | Python » 3.6.5 Documentation » Python Documentation contents What’s New in Python ...
然后在项目的 `settings.py` 中进行配置,将 `django_sass_processor` 添加到 `INSTALLED_APPS` 列表中,并设置 `STATICFILES_FINDERS` 包含 `SassFinder`: ```python INSTALLED_APPS = [ # ... 'django_sass_...
magento-finder ##注意:此工具目前正在开发中 Magento Finder 扩展了 Symfony Finder 组件并查找特殊的 Magento 文件和目录,这些文件和目录可以是: 模块; 模型、控制器、助手等。 更进一步,它会在模块或...
班古Bangoo是Django之上的内容管理系统。安装从INSTALLED_APPS及其相关的所有内容(例如: urls.py import)中删除...FINDERS设置为: STATICFILES_FINDERS = ( 'bangoo.theming.staticfiles.finders.FileSystemFind
'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'sass_processor.finders.CssFinder', ] SASS_PROCESSOR_ROOT = os.path.join(BASE_DIR, 'static') SASS_PROCESSOR_INCLUDE_DIRS = ['path/to/your/...
Thebasic idea being you should just define your model/finders and the rest should be be magic.用法安装mers,mongoose,express和body-parser $ npm install express --save $ npm install mongoose --save $...
aes-finder, 在运行过程中,用于查找AES密钥的实用程序 AES查找器在运行进程内存中查找AES键的工具。 适用于 128,192和 256-bit 键。用法在 Visual Studio 2013中打开 aes-finder.sln 解决方案以编译源代码。...
安装安装django-bower软件包: pip install django-bower 在您的设置中将django-bower添加到INSTALLED_APPS: 'djangobower' , 将staticfinder添加到STATICFILES_FINDERS: 'djangobower.finders.BowerFinder' , ...
7. Range finders:Range finders是一种基于激光雷达的测距设备,能够获取物体的距离信息。 8. Tightly controlled domains:Tightly controlled domains是一种应用立体视觉(激光雷达)技术的领域,例如工业机器人...
添加`compressor.finders.CompressorFinder`以启用`django-compressor`: ```python STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders....
3. 配置`STATICFILES_FINDERS`,添加`'django_manifest_loader.finders.ManifestStaticFilesFinder'`。 4. 设置`STATICFILES_MANIFEST`指向你的manifest文件路径。 5. 在视图或模板中,使用新的方式引用静态文件,...