Rails: строка пути автоматически изменяется в представлении - PullRequest
0 голосов
/ 10 февраля 2019

Так что я нашел эту странную ошибку в своем приложении.Я называю аватар пользователя как фоновое изображение следующим образом:

<span class="user-image" style="background-image:url(<%= avatar_tiny(current_user) %>);"></span>

avatar_tiny - помощник, который должен возвращать путь к аватару пользователя или путь к изображению по умолчанию:

def avatar_tiny(user)
    if user.contact.avatar?
      user.contact.avatar.url(:tiny)
    else
     'assets/avatar_default_tiny.png'
    end
  end

Itработает правильно на главной странице.Но когда я перехожу на любую подстраницу, Rails каким-то образом автоматически меняет этот путь, добавляя его имя в эту строку.Например, /profile/assets/avatar_default_tiny.png

И я получаю эту ошибку в моей консоли rails:

Started GET "/profile/assets/avatar_default_tiny.png" for 127.0.0.1 at 2019-02-10 05:32:51 +0100

ActionController::RoutingError (No route matches [GET] "/profile/assets/avatar_default_tiny.png"):

Почему это происходит и как я могу это исправить?

1 Ответ

0 голосов
/ 10 февраля 2019

Вы должны использовать помощник asset_path, чтобы получить относительное местоположение вашего изображения по умолчанию.Измените оператор else вашего помощника на asset_path('avatar_default_tiny.png')

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