我目前正在开发一个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
如果我不知道它的路径是什么"保证"我如何确保将我的链接指向正确的子目录。每一次?由于description属性可以是几乎任何东西,并且子目录描述是相同的,它可能只有额外的空格或其他东西。例如,carA的描述可能是" RED,CAR"但子目录是" RED CAR"所以它缺少一个逗号,然后由于路径不匹配,直接链接会中断。
到目前为止,我所尝试的是这个。
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
显然,不正确。我想做的是在网址上添加一个通配符,以便找到一个至少前3个数字正确的子文件夹(因为它们总是格式正确,### - # ###)
编辑:类似这样:@full_url =" smb:// my / server / directory / 123 - *"将匹配车号123-RED CAR
干杯。
答案 0 :(得分:0)
这有点令人费解,但听起来您需要帮助匹配目录名称,而且您没有明确定义目录名称应该是什么规则。
如果是这样,我可以考虑几个选项:
特别是找到现有目录结帐Dir.glob。它需要一个文件通配符参数,你可以在空格上拆分,删除非字母数字字符并与splats(*)连接。
例如,伪代码:dir_name.gsub("[^a-zA-Z0-9]", "").split(/\s/).join("*")