Вопрос

Я использую HAML в рельсах и был написан с помощью: Markdown Filter (BlueCloth GEM), но в RUBY, но в RUBY, а страница пытается выполнить # {значения}, как я могу остановить это?

Вот разбитый бит кода:

:markdown
  like_frags = [fields].flatten.map { |f| "LOWER(#{f}) LIKE :word#{count}" }
    or_frags << "(#{like_frags.join(" OR ")})"
    binds["word#{count}".to_sym] = "%#{word.to_s.downcase}%"
    count += 1
  end

Ошибка, которая возвращается:

undefined local variable or method `f'

Я нашел решение сам, но это далеко от идеала:

- f=nil;count=nil;like_frags=[];word=nil;

Я размещаю это до того, как начинается: Markdown Filter.

Я знаю, что это можно сделать, потому что Stackoverflow не сломался, когда я писал это, так как я тоже могу добиться этого?

Заранее спасибо!

Это было полезно?

Решение

На документацию HAML интерполяция в фильтрах нормально и ожидается. Обходить его, вы можете просто избежать #{} Синтаксис интерполяции, подготовив обратную челюсть:

:markdown
  like_frags = [fields].flatten.map { |f| "LOWER(\#{f}) LIKE :word\#{count}" }
    or_frags << "(\#{like_frags.join(" OR ")})"
    binds["word\#{count}".to_sym] = "%\#{word.to_s.downcase}%"
    count += 1
  end
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top