【问题标题】:Creating new rails action doesn't work?创建新的 Rails 操作不起作用?
【发布时间】: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'

提前致谢!

【问题讨论】:

    标签: ruby-on-rails controller routes action


    【解决方案1】:

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

    只需先放置购买路线:

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

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    相关资源
    最近更新 更多