Ruby on Rails这条路线怎么办不起作用

时间:2011-10-10 06:06:05

标签: ruby-on-rails routes

在我的配置中>我有的路线:

#Service Routes
  match "services" => "services#index"
  match "startsingleservice" => "services#start_single_service"
  match "stopsingleservice" => "services#stop_single_service"
  match "zookeeperreindex" => "services#show_zookeeper"

前3个工作,没有问题没有问题。并且所有四个都在相同的文件def / functions中,无论你想要什么。在同一个文件中。再来3,工作真棒。在那里添加那个新人,动物园管理员只是不想工作我得到

  

未知行动

     

无法找到ServicesController

的操作'show_zookeeper'

函数zookeeperreindex几乎是同一文件中实际索引def的镜像,为了重新显示的需要而改变,因为我只想要一个JSON输出。但是底线是我改变了匹配的路线,我知道这个功能大部分都在工作,而且我没有看到我可能弄乱这个简单的地方,我也重新启动了服务器本身,以确保它不是该

修改

回复来自控制器的代码,顺便说一句“show_zookeeper”定义正确..我意识到我有一个错位的“结束”标签..所以,在移动路线工作。

1 个答案:

答案 0 :(得分:2)

看起来像你的ServicesController(app / controllers / services_controller.rb)

您永远不会定义方法show_zookeeper。我的猜测是你定义了一个方法zookeeperreindex而不是show_zookeeper

为什么不链接该文件的内容?你应该看到类似的东西,

class ServicesController < ActionController::Base
  def index
    ...
  end
  def start_single_service
    ...
  end
  def stop_single_service
    ...
  end


  def show_zookeeper # <---- This one is missing

  end
end

=>确定控制器和操作后路径的工作方式。例如,“services #start_single_service”将映射到:controller => ServicesController:action => start_single_service

因此,最终通话将是ServicesController.start_single_service

查看http://guides.rubyonrails.org/routing.html了解更多信息