Я использую драгоценный камень rails3-jquery-autocomplete
, найденный здесь . Я запрашиваю таблицу пользователей и хотел бы, чтобы в раскрывающемся списке отображалось изображение профиля пользователя рядом с именем.У меня есть модель User
и полиморфная модель Image
.Каждый пользователь :has_one
изображение.В модели изображений я использую скрепку для прикрепления изображений, обозначаемых в модели как pic
.
В документации по самоцвету rails3-jquery-autocomplete
говорится, что я могу указать :display_value
в контроллере.Я использую эту технику, и она отлично работает;то есть у меня был собственный метод для возврата значения, и оно возвращено правильно.Этот пользовательский метод находится в модели User согласно правильной настройке драгоценного камня.Что я хотел бы сделать, это вернуть :tiny
версию изображения пользователя и отобразить его слева от имени в раскрывающемся списке.Следующий метод отображения работает нормально:
def autocomplete_list_display
"#{full_name}"
end
Я пытался сделать следующее:
def autocomplete_list_display
i = self.image
"#{image_tag(i.pic(:tiny))}" + " #{full_name}"
end
Я получаю сообщение об ошибке
NoMethodError (undefined method 'image_tag' for #<User id: 4, full_name: "My Name">):
Если я опускаючасть image_tag()
, тогда URL изображения отображается правильно.Однако я не могу заставить его отображаться как визуализированный HTML, даже используя для этого метод .html_safe
.Обратите внимание, я также попробовал следующее, но он не отображался как HTML:
def autocomplete_list_display
i = self.image
"<img src='#{i.pic(:tiny)}' />"
end
Как мне написать метод :display_value...
, который позволит мне встраивать HTML в результаты и показывать изображение пользователя следующимна имя?Это можно сделать с помощью метода, или это должно быть сделано в JavaScript?(В последнем случае, как мне изменить файл .js, чтобы показать изображение?)