创建新的 Rails 操作不起作用?

Posted

技术标签:

【中文标题】创建新的 Rails 操作不起作用?【英文标题】:Creating new rails action doesn't work? 【发布时间】:2011-05-17 18:47:21 【问题描述】:

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

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

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

Unknown action - The action 'show' could not be found for AppsController

在我添加的路线中:

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

提前致谢!

【问题讨论】:

【参考方案1】:

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

只需先放置购买路线:

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

请记住,路由是按照它们定义的顺序执行的,所以特定的需要在一般之前。

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

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

【讨论】:

或者将buy 操作作为收集路线添加到您的resources :apps 我认为这对于 Rails 3 来说已经过时了。相反,你需要做一些更像guides.rubyonrails.org/routing.html#adding-more-restful-actions @JasonAxelson 不,它没有过时,只是同一事物的不同语法。

以上是关于创建新的 Rails 操作不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

Rails5 Bootstrap崩溃不起作用

Rails点击事件不起作用

带有 Ruby on Rails 的 Jquery Datepicker 不起作用

在 Rails 中连接关联的按钮不起作用。所有权转让

Rails 引导选项卡。选项卡中的 Dropzone 不起作用

ruby on rails 中的引导模式不起作用(不显示)