2011-11-17 58 views
0

我有我的導軌3.寫一個小API這不是一個RESTful應用程序,所以我使用了一個名爲API控制器,有一些方法,如:非RESTful Rails的XML API

def users 
    @users = User.all 
    respond_to do |format| 
      format.any do 
        render :xml => @users.to_xml 
      end 
    end 
    end 
end 

我路線(與評論等去掉)文件是這樣的:

resources :shows 
resources :users 

resources :comments 

devise_scope :user do 
    get "/login" => "devise/sessions#new" 
    get "/logout" => "devise/sessions#destroy" 
    get "/register" => "devise/registrations#new" 
end 


root :to => 'home#index' 

match ':controller(/:action(/:id(.:format)))' 

當我打電話API /用戶我收到包裹在HTML標籤的XML(以使身體),但如果我叫API/users.xml中我得到一個406錯誤?

我是否需要更改路線以適應XML調用?

感謝,

小號

+1

那麼你的routes文件的樣子呢?你使用的是什麼版本的導軌? –

+0

乾杯@DavidGrandinetti,我用路線文件更新了我的問題。 – slotishtype

+1

你可以發佈日誌消息,你得到406錯誤?我希望看到請求URL和參數等。從你的路線我不清楚你的API /用戶呼叫是如何工作的,因爲在那裏似乎沒有乍一看匹配的路線。唯一我能想到的就是默認路由是匹配的。 –

回答

0

我添加了一個新的途徑routes.rb中,它的工作:

match 'api/users.:format' => 'api#users', :constraints => {:format => /(xml)/} 

Ĵ