2011-10-10 21 views
0

在我的配置>路由我有:Ruby on Rails的,這怎樣的路線行不通

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

前3個工作,沒有問題,沒有問題。無論你想給他們打電話,所有這四個文件都在同一個文件中。在同一個文件中。再次前3名,工作真棒。添加新的傢伙在那裏,動物園管理員只是不想要的工作,我得到

未知的動作

行動「show_zookeeper」不能爲ServicesController

發現功能zookeeperreindex幾乎是實際索引的鏡像def在同一個文件中,爲了重新顯示的需要而改變,因爲我只想要一個JSON輸出。但底線是我改變了匹配的路線,我知道這個功能大部分都在工作,而且我沒有看到我可以在哪裏搞亂這個簡單,我也重新啓動了服務器本身以確保它不是這

編輯

在從右定義的控制它的方式做「show_zookeeper」代碼回答。我意識到我有一個錯位的「結束」的標籤。所以,在移動該該路線工作。

+1

請粘貼ServicesController代碼 – drummondj

回答

2

它看起來就像在你ServicesController(應用程序/控制器/ 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更多信息