Rails: вернуть HTML из вспомогательного метода - PullRequest
0 голосов
/ 03 ноября 2018

Итак, я пытался отобразить несколько потрясающих шрифтов значков, когда любимый - true или false.

У меня было что-то похожее ниже:

Контроллер приложений

def favorite_text
    @favorite_exists ? '<i class="fas fa-heart"></i>' : '<i class="fas fa-heart-o"</i>'
end

helper_method :favorite_text

А в виде:

<%= link_to favorite_text, update_favorites_path, remote: true %>

Ответы [ 2 ]

0 голосов
/ 03 ноября 2018

Я сталкивался с подобной проблемой, чтобы показать рейтинг звезд fontawesome, но выяснил путь через метод вспомогательный

###in my application_helper.rb

    def show_big_rating_stars(count)
    if count && count > 0
       (0...count).map { content_tag(:span, "" , class: "fa fa-star gold fa-2x") }.join  
    end    


    ###this is how use it in my views
    show_big_rating_stars(vendor.ratings.count)

Надеюсь, это поможет.

0 голосов
/ 03 ноября 2018

Вы должны использовать помощник html_safe, чтобы указать, что hrml внутри строки безопасен и не должен быть экранирован (просто говоря).

Вы можете добавить этот вызов внутри вашего помощника:

def favorite_text
    (@favorite_exists ? '<i class="fas fa-heart"></i>' : '<i class="fas fa-heart-o"</i>').html_safe
end

Затем вы можете создать ссылку, вызвав link_to с блоком:

<%= link_to update_favorites_path, remote: true do %>
    <%= favorite_text %>
<% end %>

Более подробное объяснение можно найти в официальных документах: https://apidock.com/rails/String/html_safe

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