Ruby on Rails到控制器的路由不工作



尝试使用doorkeeper创建API。当我登录到我的帐户并且会话用户通过身份验证并访问我的API时

http://localhost:3000/api/v1/trials

我得到一个路由错误页面说"未初始化常数TrialsController"和rake路由列表。包括:

trials_path    GET    /api/v1/trials(.:format)    trials#index

我使用rails版本4.0.3,ruby 2.0.0。这是我的配置/路由。rb文件:

MyApp::Application.routes.draw do
  devise_for :users
  use_doorkeeper :scope => 'oauth2' do
  end
  root :to => 'welcome#index'
  scope 'api' do
    scope 'v1' do
      resources :trials
    end
  end
end

我的app/dir包含:

app/
    controllers/
        application_controller.rb
        welcome_controller.rb
        api/
           v1/
               trials_controller.rb
我trials_controller

。rb:

module Api::V1
  class TrialsController < ::ApplicationController
    doorkeeper_for :all
    def index
      @trials = Trials.all
    end
    def show
      ...
    end
    ...
  end
end

更新:当我改变路线时。将轨迹控制器命名为:

  namespace :api do
    namespace :v1 do
      resources :trails
    end
  end

我得到一个"no route matches"错误当尝试访问:

http://localhost:3000/api/v1/trials(.json)

(带或不带扩展名。)

我还添加了试验#index:

    def index
      @trials = Trials.all
      respond_to do |format|
        format.json { render :json => @trials }
        format.xml { render :xml => @trials }
      end
    end

也不走运

我不确定它会如何对抗doorkeeper,但我在一个应用程序中有一个类似的API结构。我在我的路由中有以下内容(与Sergio注意到的相匹配)

namespace :api, defaults: {format: 'json'} do
  namespace :v1 do
    resources :api_controller_1
    resources :api_controller_2
  end
end
下面是我如何构建我的API类:
module Api
  module V1
    class ApiNamedController < ApplicationController
      # code
    end
  end
end

相关内容

  • 没有找到相关文章