- 论坛徽章:
- 0
|
This lessen is a little high class, not so basic:
There is a helper method of with_scope:
class Task belongs_to :project def self.find_incomplete find_all_by_complete(false, :order => 'created_at DESC') end end
class TasksController def index @tasks = Task.find_incomplete end
in the above example, you can call find_incomplete, but if you just want the first 20 records returned by that query, what should you do?
we have to make the find_incomplete method received a hash as a condition like:
@tasks = Task.find_incomplete :limit => 20
then in the definition of the model:
def self.find_incomplete(options = {})
with_scope :find => options do
find_all_by_complete(fasle, :order => 'create_at DESC')
end
end
Any find executed within the with_scope block will automatically inherit the specified options, This will also work within another scope
(注意,在这里,更好的办法是使用find_scope 而不是 with_scope, 但是具体如何使用我还是不清楚,呵呵,不好意思。)
这样,就可以像如下这样使用了:
@tasks = @project.tasks.find_incomplete :limit => 20
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/25407/showart_1905682.html |
|