специальный символ заменяется - PullRequest
0 голосов
/ 30 марта 2012

это способ, которым я передаю строку темы в методы

@subject_text = html_subject(@customer_alert.alert.name)
@subject_text = html_sub(@customer_alert.alert.name)

, и это два метода, где я хочу заменить все специальные символы

def html_subject(s)
  s = s.to_s
  if s.html_safe?
    s
  else

    s.gsub(/[&><"]/) { |special| CustomerAlert::SUBJECT_LINE[special] }
  end
 end
def html_sub(s)
  s = s.to_s
  if s.html_safe?
    s
  else

   if s.gsub(/&/,'&')
   end
   #{ |special| CustomerAlert::SUBJECT_LINE[special] }

   if s.gsub(/>/,'>')
   end

   if  s.gsub(/&lt;/,'<')
   end

   if s.gsub(/&quot;/,'"')

end
 s
   end
  end

и константы, определенныев модели

 SUBJECT_LINE = { '&amp;' => '&',  '&gt;' => '>',   '&lt;' => '<', '&quot;' => '"' }

, но первые методы, вызывающие все специальные символы, заменяются нулем, а второй метод не возвращает никакого значения

1 Ответ

0 голосов
/ 30 марта 2012

Вместо этого вы можете использовать sanitize helper для удаления специального символа.

Проверьте ссылку: http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...