In this episode you will learn how to add custom routes, make some parameters optional, and add requirements for other parameters.
在这集中,你将会学会如何添加自定义路由,使得一些变量可选,并且对某些变量进行控制。
在这集中,你将会学会如何添加自定义路由,使得一些变量可选,并且对某些变量进行控制。
# in routes.rb
map.connect 'articles/:year/:month/:day', :controller => 'articles',
:month => nil, :day => nil, :requirements => { :year => /\d{4}/ }
def find_by_date
@posts = blog.posts.by_year(params[:year])
if params[:month]
@posts = @posts.by_month(params[:month])
@posts = @posts.by_day(params[:day]) if params[:day]
end
end
=================
In the model:
named_scope :by_year, lambda { |year| {:conditions => ["YEAR(created_at) = ?", year]} }
named_scope :by_month, lambda { |month| {:conditions => ["MONTH(created_at) = ?", month]} }
named_scope :by_day, lambda { |day| {:conditions => ["DAY(created_at) = ?", day]} }
=================