2014-11-24 41 views
2

當我嘗試加載我的api頁面時,我總是收到錯誤「自動加載常量API :: V1 :: CitysController時檢測到循環依賴項」。我搜索過的所有東西似乎都表明他們可能是一個錯字,但我認爲沒有。循環依賴錯誤自動加載常量

我的路線:

namespace :api , defaults: {format: 'json'} do 
namespace :v1 do 
    resources :citys 
end 
end 

我控制器在app /控制器/ API/V1/citys_controller.rb

theres沒什麼在它真的在此刻

class Api::V1::CitysController < ApplicationController 
respond_to :json 

def index 

end 
end 

不知道還有什麼與問題有關?它應該只是加載一個空白頁沒有任何錯誤,當我去到本地主機:3000/API/V1 /全市

添加的路由

Prefix Verb URI Pattern      Controller#Action 
    pages_home GET /pages/home(.:format)   pages#home 
     root GET /        pages#home 
api_v1_citys GET /api/v1/citys(.:format)   api/v1/citys#index {:format=>"json"} 
      POST /api/v1/citys(.:format)   api/v1/citys#create {:format=>"json"} 
new_api_v1_city GET /api/v1/citys/new(.:format)  api/v1/citys#new {:format=>"json"} 
edit_api_v1_city GET /api/v1/citys/:id/edit(.:format) api/v1/citys#edit {:format=>"json"} 
api_v1_city GET /api/v1/citys/:id(.:format)  api/v1/citys#show {:format=>"json"} 
      PATCH /api/v1/citys/:id(.:format)  api/v1/citys#update {:format=>"json"} 
      PUT /api/v1/citys/:id(.:format)  api/v1/citys#update {:format=>"json"} 
      DELETE /api/v1/citys/:id(.:format)  api/v1/citys#destroy {:format=>"json"} 
+0

我無法重現...您有看法嗎?你想要做什麼迴應? – JTG 2014-11-24 16:45:25

+0

沒有視圖。不認爲我需要一個權利?它只是一個javscript前端的api。我還沒有設置任何實際的答案。我只是想首先獲得路線。還沒有模型。儘管我認爲這應該是一個問題?它至少應該在沒有錯誤的情況下進入空白頁面。 – Matthew 2014-11-24 16:50:26

+0

它可能不是你問題的關鍵,但你確實需要渲染*東西*,否則你會得到一個缺少的模板錯誤(它不會呈現空白頁面,除非你明確地有一個空白模板/返回)。我設置了一個虛擬導軌應用程序,並將您發佈的內容複製到't',但未收到循環錯誤,我提供了文本「It works!」。果然,我看到「它的工作原理!」。所以別的東西正在打破。 '耙路線'的結果是什麼? – JTG 2014-11-24 16:54:42

回答

1

我不知道爲什麼,但錯誤說,它正在尋找對於您的citys_controller.rb文件中的API::V1::CitysController類,並且您有Api::V1::CitysController。所以首先要將你的班級的名字改爲API::V1::CitysController(注意大寫的'API')。這應該解決您的直接問題。

+0

看起來像是一個錯字。很好的接收。謝謝。 – Matthew 2014-11-24 17:34:00

+0

我應該注意到這是一個異常。我不確定爲什麼期望'API'而不是'Api',這與我的機器完全相反。這可能是一個操作系統問題,或Rails的版本,或者安裝了一些gem,很難說。我會試着再看看它。 – JTG 2014-11-24 17:37:24

+0

我有沒有完全知道它做了什麼,我想我複製了一個infliction? ActiveSupport :: Inflector.inflections(:en)do | inflect | inflect.acronym'API' end我刪除了它,並且Api按照它們現在應該的方式工作。 – Matthew 2014-11-24 17:39:46