在某个字符后清除字符串

时间:2014-07-01 05:26:36

标签: ruby-on-rails ruby paperclip slice

我使用paperclip获取此路径/system/papers/articles/000/000/024/original/data.png?1404191431。但是在扩展名(.png)后我可以得到一个数字,我不知道为什么.. 所以我想清除.png之后的所有文字,包括

我如何在ruby中完成?

我需要该链接的原因是因为我需要使用ImageMagick向其添加元数据,目前我无法做到随机数的原因。

另外,如果可能的话,我想知道为什么这个数字是由回形针打印的,因为我看到的,数字没有保存在数据库中,也没有保存到图像名称..

3 个答案:

答案 0 :(得分:3)

您可以使用URI类:

require 'uri'

str = '/system/papers/articles/000/000/024/original/data.png?1404191431'

URI.parse(str).path
#=> "/system/papers/articles/000/000/024/original/data.png"

关于comment

  

...我尝试使用@record.article.url

获取存储图像的路径

您可以使用.path代替.url来获取文件的绝对路径:

@record.article.path
#=> "/path/to/project/public/system/papers/articles/000/000/024/original/data.png"

答案 1 :(得分:2)

使用[]和正则表达式在匹配的模式上“分配”一个空字符串。

str = '/system/papers/articles/000/000/024/original/data.png?1404191431'

str[/\?\d+$/] = ''

可能会添加此数字以用于缓存目的。

答案 2 :(得分:2)

"/system/papers/articles/000/000/024/original/data.png?1404191431"
.split("?").first