Ruby on rails 创建新的rails操作不需要';不行?

Ruby on rails 创建新的rails操作不需要';不行?,ruby-on-rails,controller,routes,action,Ruby On Rails,Controller,Routes,Action,我有一个控制器“应用程序”。它由一个动作“索引”组成。现在我想添加一个名为“购买”的新操作: 我在视图中添加了一个buy.html.erb,但当浏览到/apps/buy时,我收到以下消息: Unknown action - The action 'show' could not be found for AppsController 在路线中,我添加了以下内容: match '/apps/buy', :controller => 'apps', :action => 'buy'

我有一个控制器“应用程序”。它由一个动作“索引”组成。现在我想添加一个名为“购买”的新操作:

我在视图中添加了一个buy.html.erb,但当浏览到/apps/buy时,我收到以下消息:

Unknown action - The action 'show' could not be found for AppsController
在路线中,我添加了以下内容:

  match '/apps/buy', :controller => 'apps', :action => 'buy'

提前谢谢

url被标准的
/apps/:id
路由捕获,我假设您的路由中也有
资源:apps

只需将购买路线放在第一位:

match '/apps/buy', :controller => 'apps', :action => 'buy'
resources :apps
请记住,路由是按照其定义的顺序执行的,因此特定路由需要在常规路由之前执行

@Ryan建议的一种更简单的方法是向资源添加收集路由:

resources :apps, :collection => { :buy => :get }

或者将
buy
操作作为收集路线添加到您的
resources:apps
。我认为这对于Rails 3来说已经过时了。相反,你需要做一些更像@JasonAxelson的事情不,这不是过时的,只是对同一件事使用不同的语法。
resources :apps, :collection => { :buy => :get }