0

我是 ruby​​ on rails 的新手。我已经有了这些路线

  namespace :swimming do resources :classschedules    end

现在我向这个控制器添加了一个新动作

class Swimming::ClassschedulesController < ApplicationController

  def date 
    @date = params[0]
  end
end

如何为此新操作添加路线?

我想打电话给 Swing/classschedules/date/2013-03-07 。这将是单个元素,2013-03-07 是我想在此操作中使用的参数。

4

2 回答 2

1

当您想要/swimming/classcehdules/date/2012-12-03匹配的网址时,请尝试:

namespace :swimming do
  resources :classschedules do
    get 'date/:date', :action => 'date', :as => :date, :on => :collection,
                      :constraints => { :date => /\d{4}-\d{2}-\d{2}/ }
  end 
end

额外:constraint的是确保:date参数是预期的形式。在您的操作中,您可以将日期获取为:

def date
   @date = params[:date] # => "2012-12-03"
end

查看http://guides.rubyonrails.org/routing.html以获取有关路由的更多信息。

于 2013-03-02T08:40:38.397 回答
0
namespace :swimming do 
  resources :classschedules do
    get 'date', :on => :member # or collection
  end
end

指南中的更多信息

于 2013-03-02T06:46:12.050 回答