В Rails, как бы я включил раздел страницы, только если остальная часть страницы не соответствует определенному регулярному выражению? - PullRequest
1 голос
/ 04 января 2011

У нас есть сайт с большим количеством пользовательского контента, и мы хотели бы показывать на нем рекламу Google.Часть контента такова, что мы не должны показывать рекламу на страницах, содержащих это содержание, иначе весь сайт будет заблокирован.Мы придумали регулярное выражение, которое, по нашему мнению, будет соответствовать всему оскорбительному контенту.

Итак, на ум приходят три подхода:

  1. Рендеринг страницы один раз без рекламного раздела,а затем вставьте в него рекламный раздел, если он чистый
  2. Визуализируйте страницу как обычно, и выполните вставку в javascript на стороне клиента
  3. Визуализируйте страницу над рекламным разделом, захватывая только частистраницы, которые меняются;убедитесь, что после этого нет никаких сменных частей.Показывайте рекламу только в том случае, если захваченный текст чистый, и убедитесь, что неизменные незаписанные части заранее проверены.

Первая, похоже, может задержать визуализацию страницы слишком долго;вторая, похоже, может задержать показ рекламы слишком долго;а третий кажется слишком хрупким.Есть ли лучший подход?Если нет, какое из них является лучшим решением из трех?

1 Ответ

2 голосов
/ 04 января 2011

Если вы храните пользовательский контент в базе данных, тогда вы сможете добавить решение о том, является ли контент «чистым» или нет, в определение вашей модели.

Затем вашпросмотры могут включать или исключать соответствующие рекламные теги на основе значения чистоты текущего объекта, например:

<%= @article.body %>
<% if @article.clean? %>
  <= render :partial => 'ads/google' %>
<% end %>

Если содержимое вашей страницы состоит из нескольких объектов, и вам необходимо проверить все их возможные выходные данныетекст, который немного усложняет, но это не недостижимо.

В настоящий момент, похоже, вы пытаетесь поместить всю эту бизнес-логику исключительно на уровень клиент / JavaScript.Как вы предполагаете, это может быть довольно медленным и ненадежным.Это также очень сложно проверить.Перемещение правил в ваши бизнес-модели позволит вам проверить их и гарантировать, что они не сломаются, когда вы работаете над тем, как заставить их работать как можно быстрее.

...