gpt4 book ai didi

ruby - 如何在 Sinatra 中创建类似 Rails 的前置过滤器?

转载 作者:数据小太阳 更新时间:2023-10-29 08:15:53 25 4
gpt4 key购买 nike

class Foo
def do_before
...
end

def do_something
...

有没有办法在 Foo 类中的每个其他方法之前运行 do_before 方法(如 do_something)?

好像是Sinatra的before block 在每次HTTP请求之前运行,跟这个类没有关系。

编辑:正如 Michael 在评论中指出的那样,Rails 提供的唯一类似功能是在 Controller 中。但是,Rails 和 Sinatra 都提供了与此功能类似的东西。

最佳答案

作为iain在评论中指出,您指定的示例并非特定于 Rails/Sinatra。我假设您想要像 Rails 中那样的前置过滤器,这就是 Sinatra 提供的:

Sinatra 的模块化应用程序:

class Foo < Sinatra::Base

before do
"Do something"
end

get '/' do
"Hello World"
end
end

class Bar < Sinatra::Base

before do
"Do something else"
end

get '/' do
"Hello World"
end
end

在你的config.rb 文件中,

require 'foo.rb'
require 'bar.rb'

map '/foo' do
run Foo
end

map '/bar' do
run Bar
end

这是与 Sinatra 中的 Rails Controller 最接近的类比。创建更多这样的类,您将拥有类似的功能(类似,但可能与您在 Rails 世界中所期望的不同)。

关于ruby - 如何在 Sinatra 中创建类似 Rails 的前置过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16115358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com