【问题标题】:Ruby on Rails how does this route not workRuby on Rails 这条路线如何不起作用
【发布时间】:2011-10-10 06:06:05
【问题描述】:

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

#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”定义正确。我意识到我有一个放错位置的“结束”标签。所以,在移动路线时,它是有效的。

【问题讨论】:

  • 请粘贴 ServicesController 代码

标签: ruby-on-rails routes


【解决方案1】:

它看起来像在你的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

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

因此,最终呼叫将是ServicesController.start_single_service

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 2011-10-26
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多