创建服务器上

时间:2017-09-29 14:35:53

标签: ruby-on-rails ruby rails-activerecord filepath subdirectory

我目前正在开发一个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

的子文件夹

干杯。

1 个答案:

答案 0 :(得分:0)

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

如果是这样,我可以考虑几个选项:

  1. 预先将目录名称存储在表格中并引用它。
  2. 将目录命名约定更改为更合理的内容。
  3. 首先查找用于创建目录名称的规则 并重复使用该代码。
  4. 重新创建规则作为假设,检查目录是否存在 存在,如果没有尝试其他假设,直到确实存在。
  5. 特别是找到现有目录结帐Dir.glob。它需要一个文件通配符参数,你可以在空格上拆分,删除非字母数字字符并与splats(*)连接。

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