创建新的 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 操作不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
带有 Ruby on Rails 的 Jquery Datepicker 不起作用