rom*_*man 5 ruby ruby-on-rails sinatra
我有一个Rails应用程序和一个Sinatra应用程序:
routes.rb中:
mount MySinatraApp => "/streaming"
Run Code Online (Sandbox Code Playgroud)
sinatra app:
class MySinatraApp< Sinatra::Base
...
before do
puts 'hello from sinatra!'
end
...
end
Run Code Online (Sandbox Code Playgroud)
我希望过滤器只能在开始时的请求上运行/streaming...,但是,令我惊讶的是,过滤器运行在对整个Rails应用程序的每个请求上.这样的行为怎么办?之后我可以添加一个正则表达式过滤器before,但我认为这不是一个好的风格.
嗯,我替换了
mount MySinatraApp => "/streaming"
Run Code Online (Sandbox Code Playgroud)
和
match "/streaming" => SinatraQuoridor, :anchor => false
Run Code Online (Sandbox Code Playgroud)
过滤器开始按预期运行。尽管如此,我不清楚为什么会发生这种情况:根据这篇文章, mount 应该只调用 match with :anchor => false,所以路由应该是相同的。但行为有所不同。
| 归档时间: |
|
| 查看次数: |
1148 次 |
| 最近记录: |