小编sme*_*mek的帖子

子域上的api的路由路由

我想通过子域(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中,应该留在那里.

我尝试绘制路线但没有任何成功.有人知道如何解决这个问题吗?

api subdomain routes ruby-on-rails-3.2

18
推荐指数
1
解决办法
3666
查看次数

Backbone jasmine sinon.stub typeError

我正在尝试编写一个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()不会给出错误.

这是一个范围问题吗?有人能指出我正确的方向吗?

coffeescript backbone.js jasmine sprockets sinon

7
推荐指数
1
解决办法
3097
查看次数

Rails + foreman + worker挂起服务器

在我的本地机器上,我正在尝试启动我的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但没有任何成功.

有人有线索吗?谢谢!

delayed-job ruby-on-rails-3 foreman

7
推荐指数
1
解决办法
2449
查看次数