gpt4 book ai didi

ruby - 在 sinatra :public is not returning a path as expected. 错误或功能?

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

在我的应用程序中作为我设置的一部分

set :public, Proc.new { File.join(root, 'public') }

但是如果我在我的配置 block 中查看变量 public,它是一个代表整个应用程序(或似乎)的对象

public.to_json -->

{"extensions":[],"conditions":[],"routes":{},
"inheritable_attributes":{},"errors":{},"prototype":null,"active_user":null,
"templates":{},"filters":{"after":[],"before":[]},
"middleware":[],"models_are_loaded":true}

但在我的配置 block 中,public 曾经只是解析为 'public'

这让我很烦,因为现在对我的应用程序的每个请求都提示它“无法将 Class 转换为 String”行

set :images, Proc.new {File.join(public, 'images')}

但奇怪的是,这曾经工作得很好

在过去三周内,Ruby 或 Sinatra 有什么变化吗(我一直在休假,在我离开之前这一切都奏效了)?

请注意,我也试过像以前那样将 set :public, ... 位注释掉,但结果相同。

最佳答案

从 sinatra 1.3 开始,public 已被弃用,取而代之的是 public_folder。这样做是为了避免重载 Module#public

现在:

dir = File.dirname(__FILE__)
set :public_folder, "#{dir}/public"

虽然在您的示例中我不确定您为什么使用 Proc...

关于ruby - 在 sinatra :public is not returning a path as expected. 错误或功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8060606/

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