ruby-on-rails - 创建新的Rails Action 行不通吗?

标签 ruby-on-rails controller routes action

我有一个 Controller “应用程序”。它由一个 Action “索引”组成。现在,我要添加一个名为“购买”的新操作:

def buy
  respond_to do |format|
    format.html
  end
end

我在 View 中添加了buy.html.erb,但是浏览到/apps/buy时,出现以下消息:
Unknown action - The action 'show' could not be found for AppsController

在我添加的 route :
  match '/apps/buy', :controller => 'apps', :action => 'buy'

提前致谢!

最佳答案

该网址已被标准/apps/:id路由捕获,我假设您的路由中也有resources :apps

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

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

请记住,路由是按照定义的顺序执行的,因此特定的路由需要先于通用路由。

@Ryan建议的一种更简单的方法是向资源添加收集路径:
resources :apps, :collection => { :buy => :get }

关于ruby-on-rails - 创建新的Rails Action 行不通吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4312477/

相关文章:

ruby-on-rails - 需要有关链接来自不同站点的帐户的建议

ruby-on-rails - Rails 如何在不锁定的情况下触摸 Active Record 对象?

variables - Grails将变量从gsp传递到 Controller

asp.net-mvc - asp.net mvc Controller 帖子最佳实践

java - 从同一 Controller 的另一个 REST 端点直接调用 REST 端点(方法)是一种好习惯吗?

javascript - 如何 router.navigate 到 Angular 4 中的相同路线并捕获相同的事件?

javascript - 按照路线在谷歌地图上画线

ruby-on-rails - Rails 4:在ElasticSearch索引上从Wysiwyg编辑器清除文本

ruby-on-rails - 使用包含 : { in: array } 验证数组元素包含

php - CakePHP 中的变量前缀路由