为什么我的自定义路由被忽略了?

时间:2013-07-09 08:23:49

标签: ruby-on-rails

我有一个名为banana.rb的控制器

在routes.rb中我有:

 resources :banana, :path => "ban_fruit" do
    get 'list'
  end

在浏览器中,我点击http://host.com/ban_fruit/list.json

但它错了,告诉我:“BananaController无法找到动作'show'”

我需要http://host.com/ban_fruit/list.json才能工作,如何在不重命名控制器的情况下执行此操作?

3 个答案:

答案 0 :(得分:0)

你宁愿这样做:

get 'list', on: :collection

答案 1 :(得分:0)

您需要将路线定义为收集路线。

有关成员与收集路线的信息,请参阅http://guides.rubyonrails.org/routing.html#adding-more-restful-actions

否则,您的网址将与您的控制器的show操作相匹配(操作将在参数中收到:id => 'list'

答案 2 :(得分:0)

尝试如下:

get 'ban_fruit/list' =>  'banana#list'
#
# ban_fruit_list GET /ban_fruit/list(.:format)    banana#list