Итак, у меня есть этот код в моем презентаторе Rails (аналогично драгоценному камню Draper):

  def title
    h.link_to 'Favor', favor_path(@favor) + asked_or_published? + user_link
  end

  def asked_or_published?
    if asked_favor?
      h.content_tag(:p, "published by")
    elsif published_favor?
      h.content_tag(:p, "asked by")
    end 
  end

  def user_link
    h.link_to @favor.favor_asker.firstname, h.user_path(@favor.favor_asker)
  end

И я вызываю, на мой взгляд, метод title. Проблема в том, что вызов этого метода возвращает только часть link_to 'Favor', а не остальное. Почему?

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

Ответы (1)

Это проблема приоритета группировки, + ask_or_published? + user_link биты добавляются к пути, сгенерированному Favor_path (@favor). Не уверен, что они также правильно экранируются, но это не имеет значения.

Замените это:

h.link_to 'Favor', favor_path(@favor) + asked_or_published? + user_link

с:

h.link_to('Favor', favor_path(@favor)) + asked_or_published? + user_link

2022 WebDevInsider