创建服务器上子目录的完整路径

Creating a full path to sub-directory on a server

我目前正在开发一个 Rails 应用程序,并且最近收到了一个请求,要求我添加访问工作服务器上子目录的功能。 即每个 LINK 都会带你到 smb://my/server/directory/sub-directory

问题:假设 directory 是包含所有子目录的大目录。这里有一些例子来说明我的意思。

我有3个汽车记录。子目录由 2 个属性的串联组成,carA.number 的前 3 位数字(类似于 carA.number.split('-')[0],因为它的格式为 ###-####-#)是一个连字符,并且汽车的描述(类似于 carA.description_of_car)。完整路径类似于 smb://my/server/directory/carA.number.split('-')[0] - carA.description_of_car

如果我每次都不知道 "guaranteed" 的路径,我如何确保将 link 指向正确的子目录?由于 description 属性几乎可以是任何东西,并且子目录的描述是相同的,它可能只是有额外的空格或其他东西。例如,carA 的描述可能是 "RED, CAR",但子目录是 "RED CAR",所以它缺少一个逗号,那么直接的 link 会中断,因为路径不匹配。

目前为止我试过的就是这个。

    base_url = "smb://my/server/directory/"
    car_prefix = @car.number.split('-')[0]
    car_suffix = "-" + @car.description_of_car.split(' ')[0]

    @full_url = base_url + part_prefix + part_suffix

显然,不正确。我想做的是在 url 中添加一个通配符,以便它找到一个至少前 3 个数字正确的子文件夹(因为它们总是采用正确的格式,### -####)

编辑:类似这样的内容:@full_url = "smb://my/server/directory/123-*" 将匹配车号 123-RED CAR

的子文件夹

干杯。

这有点令人费解,但听起来您需要匹配目录名的帮助,而且您没有明确定义该目录名应该是什么的规则。

如果是这样,我可以想到几个方案:

  1. 预先将目录名称存储在 table 中并引用它。
  2. 将目录命名约定更改为更合理的名称。
  3. 首先找到用于创建目录名称的规则 并重新使用该代码。
  4. 重新创建规则作为假设,检查目录是否 存在,如果不尝试其他假设,直到一个假设确实存在。

特别是查找现有目录结帐Dir.glob。它需要一个文件 globbing 参数,您可以在空格上拆分,去除非字母数字字符并使用 splats(*) 连接。

例如,伪代码:dir_name.gsub("[^a-zA-Z0-9]", "").split(/\s/).join("*")