相关疑难解决方法(0)

使用机架安装的多个Sinatra应用程序

我有一个关于在Sinatra上使用机架安装的问题.我有两个经典风格的Sinatra应用程序.让我们调用app.rb中定义的一个App和api.rb中定义的另一个API.

我希望它能让api.rb处理所有以'/ api'开头的路由,而app.rb会处理所有其他请求,包括root('/').

如何使用机架安装进行设置?或者有更好的解决方案吗?

ruby sinatra

17
推荐指数
3
解决办法
1万
查看次数

在共同的基础路线上建立路线?

我有一个共同的基本路径; 说:get /base我需要执行基本身份验证并在该路径下为所有子调用工作.说:get /base/fooget /base/bar.

查看http://www.sinatrarb.com/intro.html#Helpers建议我应该能够使用帮助程序来完成此操作.我正在查看pass助手并使用call触发文档中的新路径.但是,我读到的另一个建议是使用正则表达式IE %r{/base/?:(path)?}或其他类似的动态路由.那么怎么样:

def '/base'
    # do some funky basic auth stuff here
    # to work with all request to this common
    # base path?
    pass
end

def %r{/base/?(path)?} do |path|
    case path
        when 'foo'
            # do something.
        when 'bar'
            # do something else.
    end

    # some kind of redirection or template rendering here:
    erb :template
end
Run Code Online (Sandbox Code Playgroud)

有没有人以前处理过这种事情?我想保持干燥.当然,我不确定给定的例子在保留params方面是最好的.

ruby routes sinatra

6
推荐指数
1
解决办法
2022
查看次数

标签 统计

ruby ×2

sinatra ×2

routes ×1