我想通过子域(https://api.domain.com)访问我的Rails应用程序的API.我定义了以下路线:
constraints :subdomain => 'api' do
namespace :api, defaults: {format: 'json'} do
scope module: :v1, constraints: ApiConstraints.new(version: 1, default: true) do
resources :posts
end
end
end
Run Code Online (Sandbox Code Playgroud)
这有效,但会产生以下网址:
https://api.domain.com/api/posts
Run Code Online (Sandbox Code Playgroud)
我希望它是:
https://api.domain.com/posts
Run Code Online (Sandbox Code Playgroud)
API控制器位于app/controllers/api/v1中,应该留在那里.
我尝试绘制路线但没有任何成功.有人知道如何解决这个问题吗?
我正在尝试编写一个Backbone Todos集合的简单规范,该集合存储了Backbone Todo模型.
这是我的规格:
describe "TodoApp.Collections.Todos", ->
beforeEach ->
@todoStub = sinon.stub window, 'TodoApp.Models.Todo'
afterEach ->
@todoStub.restore()
Run Code Online (Sandbox Code Playgroud)
这给了我以下错误:
TypeError: Attempted to wrap undefined property TodoApp.Models.Todo as function
Run Code Online (Sandbox Code Playgroud)
Todo模型定义为todo = new TodoApp.Models.Todo()不会给出错误.
这是一个范围问题吗?有人能指出我正确的方向吗?
在我的本地机器上,我正在尝试启动我的rails应用程序并使用Foreman推迟了工作者.我的Procfile看起来像这样:
web: bundle exec rails server -p $PORT
worker: bundle exec rake jobs:work
Run Code Online (Sandbox Code Playgroud)
当我开始工头时,只有前两个Web请求被执行.第三个请求服务器挂起.第一个请求在控制台输出,第二个请求不输出.
如果我在Procfile中省略了工作人员,服务器运行正常,并将所有内容输出到控制台.此外,当我启动rails服务器和没有Foreman的工作人员一切正常.
所以看起来Foreman存在问题.我猜这是Foreman在第一次请求后没有向控制台输出任何内容的问题,因此缓冲区不会被刷新.我搜索了其他帖子,结果在我的development.rb中添加了STDOUT.sync = true但没有任何成功.
有人有线索吗?谢谢!
api ×1
backbone.js ×1
coffeescript ×1
delayed-job ×1
foreman ×1
jasmine ×1
routes ×1
sinon ×1
sprockets ×1
subdomain ×1