0

我的表有 Attachment.attachment_content_type 这是字符串类型。值如下所示:

[]
[image/png]
[application/msword, application/word, application/x-msword, application/x-word, text/plain]

我想要做的是得到第一个项目(如果有的话)。

我正在尝试:

attachment.attachment_content_type[0]

但这只是返回 [ 而不是 'application/msword'

我应该使用拆分还是有更好的方法在rails上使用ruby来告诉rails这是一个数组?谢谢

4

3 回答 3

3
$ cat foo.rb 

strings = [
  "[]",
  "[image/png]",
  "[application/msword, application/word, application/x-msword, application/x-word, text/plain]"
]

strings.each do |string|
  array = string[1...-1].split(/[\s,]+/)
  puts array[0]
end

$ ruby foo.rb 

image/png
application/msword
于 2012-12-05T21:21:17.300 回答
1

attachment.attachment_content_type[1..-2].split(',').map(&:strip)将字符串的内容作为数组返回。

于 2012-12-05T21:27:21.643 回答
0

尝试使用gsub!scan

mimetypes.gsub!(/([\[\]])/, '')
mime_array = mimetypes.scan(/, /)

请参阅字符串 API以了解更多有趣的方法以及用于正则表达式测试的Rubular :)

于 2012-12-05T21:36:35.640 回答