Rails 3.1 html_safe (+ комбинация строковых данных) - дважды ли запускается действие контроллера - PullRequest
0 голосов
/ 26 декабря 2011

Последние два дня я бился головой, пытаясь понять это, и наконец сузил источник.

Я использую помощник для генерации html для моей боковой панели и html_safeна возвращаемое значение.Когда я правильно структурировал html, это приводит к тому, что действие моего контроллера запускается дважды (сначала я увидел это, когда получил две записи, вставленные в мою базу данных из моего действия, а затем подтвердил использование ruby-debug).Вот вспомогательный код:

def get_sidebar

  first = String.new
  second = String.new
  str = String.new

  str+= "<a href=''><img src='" << first << second << "'></a>"

  str.html_safe

end

Если я изменю str и уберу тег img до и после concat'd vars, он срабатывает только один раз.Если переменные concat'd не пусты, они запускаются только один раз (они изначально были из необнуляемых столбцов db, но были пустыми строками).И если я не вызываю метод html_safe, он срабатывает только один раз ...

Есть идеи, что здесь происходит?Это ожидаемое поведение для html_safe?Я сумасшедший?

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

Ответы [ 2 ]

0 голосов
/ 18 января 2012

Когда браузер пользователя загружает страницу с этой строкой, что происходит?Он должен вернуться на сервер, чтобы получить изображение.Два запроса.Похоже, URL вашего изображения на самом деле является запросом Rails.

Если вы не используете html_safe, чтобы пометить строку как безопасную, то тег изображения будет экранирован, и браузер не вернется на сервер.

0 голосов
/ 26 декабря 2011

использовать content_tag вместо html_safe

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