Rails / опущено из link_to? - PullRequest
0 голосов
/ 12 июня 2010

Я использую Gem для связи с FreeagentCentral через их API.У меня есть следующий код для отображения ссылки на соответствующий проект бесплатного агента:

<%= link_to "#{image_tag('/images/icons/Spinning Beach Ball.png')} Freeagent Project", "#{Freeagent::Base.site.to_s + Freeagent::Project.element_path(@kase.freeagent_id).gsub(/\A\//, '').gsub!(/.xml/,'')}" if @kase.freeagent_id %>

Проблема - в URL отсутствует / опущено, что делает URL таким:

https://XXXXX.freeagentcentral.comprojects/12345

где это должно быть:

https://XXXXX.freeagentcentral.com/projects/12345

Это может быть просто, но для меня - это сводит меня с ума!

Спасибо,

Дэнни

1 Ответ

1 голос
/ 12 июня 2010

Я предполагаю, что Freeagent::Base.site перенастраивает 'https://XXXXX.freeagentcentral.com'. В этом случае вам просто нужно добавить / в строку между частями сайта и проекта. Попробуйте следующее:

<%= link_to "#{image_tag('/images/icons/Spinning Beach Ball.png')} Freeagent Project", 
  "#{Freeagent::Base.site}/#{Freeagent::Project.element_path(@kase.freeagent_id).gsub(/\A\//, '').gsub!(/.xml/,'')}" if @kase.freeagent_id %>

Edit:

При более внимательном рассмотрении gsub(/\A\//, '') удаляет / из начала строки, возвращаемой Freeagent::Project.element_path(@kase.freeagent_id). Предполагая, что element_path действительно возвращает строку с ведущим /, лучшим решением будет удалить первый вызов gsub:

<%= link_to "#{image_tag('/images/icons/Spinning Beach Ball.png')} Freeagent Project", 
  "#{Freeagent::Base.site}#{Freeagent::Project.element_path(@kase.freeagent_id).gsub!(/.xml/,'')}" if @kase.freeagent_id %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...