0
各記事には、現在強調表示されている(クラスでスパンでラップされている)キーワードのリストがあります。しかし、私はキーワード( "at"、 "in"、 "on")内の特定の前置詞を許可する必要があります。各記事は、キーワードをカンマ区切り文字列として含むOrderに属します。"at"、 "in"、 "on"を許可する文字列のキーワードを強調表示
たとえば、 "boutique hotels london"のような長いテールキーワードがあり、記事に "in londonのブティックホテル"という単語が含まれている場合は、キーワードとして強調する必要があります。記事が作成された後
class Article < ActiveRecord::Base
def format_content
words = self.content
# map comma separated keywords into array and remove any whitespace
keywords = self.order.keywords.downcase.split(',').map{ |k| k.strip }
# replace words with keywords wrapped in span
keywords.each do |word|
words = words.gsub(/(#{word})/i, "<span class=\"text-primary\">\\1</span>")
end
words
end
end
format_content方法はそうのように、ショーのビューからの部分的に使用されます。
<%= simple_format article.format_content, { class: "content" }, wrapper_tag: "p" %>
これは、前後の単語を捕捉しますが、長いテールキーワードの間の単語は捕捉しません。キーワード「ブティックホテルロンドン」 –
の間に "boutique hotel * in * London"のために働く必要があるので、それはキーワードの間の前置詞のためだけに働くべきですか? –
キーワード間にあるはい(この場合、キーワードは複数の単語になる可能性があります)、前置詞が不要な場合は直接一致にも使用できます。 –