Rails - Как избежать вставки html в метод - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть метод в моем проекте, чтобы показать название книги и значок в таблице. Метод таков:

def title_and_follow()
  "#{h.link_to object.title, h.show_book_path(object.uuid)}
   #{h.follow_icon(user, object)}".html_safe
end

Он отлично работает и показывает что-то вроде «Гарри Поттер [follow_icon]» в моей таблице. Однако мне интересно, есть ли способ избежать вставки HTML непосредственно в метод? Есть ли более элегантный способ сделать это?

1 Ответ

0 голосов
/ 19 апреля 2020

Вы имеете в виду не использовать интерполяцию строк, а затем .html_safe?

Вы можете использовать методы rails 'capture и concat. Что-то вроде:

def title_and_follow
  capture do
    concat link_to(object.title, show_book_path(object.uuid))
    concat follow_icon(user, object)
  end
end

Я думаю, что это должен быть метод помощника вида (сейчас он выглядит так, как будто он где-то еще, не уверен, не ясно, но мне это h. кажется странным)

...