我这里有这个小东西:
def get_articles
@articles = []
Doc.column_names.each do |a|
if a.match(/^article/)
@articles << a
end
end
end
但它会返回很多不需要的结果。我将如何丢弃它以特定字符串(例如,_body
)返回的结果?
干杯!
我这里有这个小东西:
def get_articles
@articles = []
Doc.column_names.each do |a|
if a.match(/^article/)
@articles << a
end
end
end
但它会返回很多不需要的结果。我将如何丢弃它以特定字符串(例如,_body
)返回的结果?
干杯!
怎么样:
if a.match(/^article/) and !a.match(/_body$/)
顺便说一句,您的方法可以重写(更紧凑)为:
def get_articles
@articles = Doc.column_names.select { |a| a.match(/^article/) && !a.match(/_body$/) }
end
您还可以将双重匹配替换为包含零宽度否定后向断言的单个匹配,但对于大多数人来说,它的可读性较差(尽管在快速和肮脏的测试中速度大约是 2 倍):
def get_articles
@articles = Doc.column_names.select { |a| a.match(/^article.*(?<!_body)$/) }
end