首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular - Rails没有与api/版本匹配的路由

Angular - Rails没有与api/版本匹配的路由
EN

Stack Overflow用户
提问于 2014-12-07 09:43:26
回答 1查看 171关注 0票数 0

我正在开发一个rails 4.1.8API,并在客户端使用angular js,但使用的是不同的工作区。我使用grunt connect- proxy代理所有请求到我的rails API,但是Rails总是返回给我No route matches[METHOD]"ROUTE",但是尝试使用高级Rest客户端工作得很好,我不知道我出了什么问题。域不是问题所在,它们正在工作

routes.rb

代码语言:javascript
复制
namespace :api, path: '/', constraints: {subdomain: 'api'}, defaults: { format: :json } do
    namespace :v1 do
      with_options except: [:edit, :new] do |except|
        except.resources :users do
          collection do
            post 'login'
          end
        end
        except.resources :products
        except.resources :locations
      end
    end
end

我的angular代码如下所示

代码语言:javascript
复制
angular.module('myApp')
  .controller('HomeCtrl', function ($scope, $resource) {
    var User = $resource('/v1/users',{},{});
    User.get().$promise.then(function (data) {
      console.log(data);
    });
  });

这是我的Grunt代理配置

代码语言:javascript
复制
grunt.initConfig({
connect: {
  options: {
    port: 9000,
    hostname: 'dev.myapp.co',
    livereload: 35729
  },
  proxies: [
    {
      context: '/v1',
      host: 'api.myapp.co',
      port: 3000
    }
  ],
  livereload: {
    options: {
      open: true,
      middleware: function (connect) {
        return [
          require('grunt-connect-proxy/lib/utils').proxyRequest,
          connect.static('.tmp'),
          connect().use(
            '/bower_components',
            connect.static('./bower_components')
          ),
          connect.static(appConfig.app)
        ];
      }
    }
  },
  ...
  });
  grunt.registerTask('serve', 'Compile then start a connect web server', function (target) {
  if (target === 'dist') {
    return grunt.task.run(['build', 'connect:dist:keepalive']);
  }

  grunt.task.run([
    'clean:server',
    'wiredep',
    'concurrent:server',
    'autoprefixer',
    'configureProxies',
    'connect:livereload',
    'watch'
  ]);
});
grunt.loadNpmTasks('grunt-connect-proxy');
EN

回答 1

Stack Overflow用户

发布于 2014-12-15 15:36:31

我怀疑你可能给你的Rails控制器起错了名字。您是否介意发布user_controllerproduct_controllerlocation_controller?谢谢!

另外,当您尝试通过localhost:3000/v1/users直接访问api时,会发生什么情况?您是否收到相同的No route matches[METHOD]"ROUTE"错误?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27338660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档