创建服务器上子目录的完整路径
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
的子文件夹
干杯。
这有点令人费解,但听起来您需要匹配目录名的帮助,而且您没有明确定义该目录名应该是什么的规则。
如果是这样,我可以想到几个方案:
- 预先将目录名称存储在 table 中并引用它。
- 将目录命名约定更改为更合理的名称。
- 首先找到用于创建目录名称的规则
并重新使用该代码。
- 重新创建规则作为假设,检查目录是否
存在,如果不尝试其他假设,直到一个假设确实存在。
特别是查找现有目录结帐Dir.glob。它需要一个文件 globbing 参数,您可以在空格上拆分,去除非字母数字字符并使用 splats(*) 连接。
例如,伪代码:dir_name.gsub("[^a-zA-Z0-9]", "").split(/\s/).join("*")
我目前正在开发一个 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
干杯。
这有点令人费解,但听起来您需要匹配目录名的帮助,而且您没有明确定义该目录名应该是什么的规则。
如果是这样,我可以想到几个方案:
- 预先将目录名称存储在 table 中并引用它。
- 将目录命名约定更改为更合理的名称。
- 首先找到用于创建目录名称的规则 并重新使用该代码。
- 重新创建规则作为假设,检查目录是否 存在,如果不尝试其他假设,直到一个假设确实存在。
特别是查找现有目录结帐Dir.glob。它需要一个文件 globbing 参数,您可以在空格上拆分,去除非字母数字字符并使用 splats(*) 连接。
例如,伪代码:dir_name.gsub("[^a-zA-Z0-9]", "").split(/\s/).join("*")