Создание href в ruby ​​с использованием html slim - PullRequest
0 голосов
/ 22 января 2019

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

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

Место, где я пытаюсь добавить ссылку:

= render partial: 'services/partials/messages/original_message', locals: { header: t('html.text.consultation_with.for_provider', name: @provider_user.name, type: t("element_names.#{@service.service_type}")),...

и часть скрипта, которая использовалась для ссылки на учетную запись пользователя (провайдера), выглядит следующим образом:

[href="#{provider_path(provider)}" id="provider-#{provider.id}"]

Итак, я попытался объединить эти два:

= render partial: 'services/partials/messages/original_message', locals: { header: t('html.text.consultation_with.for_provider', name: [href="#{provider_path(provider)}" id="provider-#{provider.id}"], type: t("element_names.#{@service.service_type}")),...

И не удивился, что это не сработало ..

1 Ответ

0 голосов
/ 22 января 2019

Нельзя смешивать синтаксис slim element (тот, что в квадратных скобках, используется сам по себе slim для создания атрибутов элемента) с ruby-кодом (аргументы render, это просто вызов метода ruby!)

Может быть, это сработает для вас, или какая-то адаптация:

= render partial: 'services/partials/messages/original_message', 
         locals: { 
           header: t('html.text.consultation_with.for_provider', 
           name: @provider_user.name,
           provider_link_href: provider_path(provider),
           provider_link_id: "provider-#{provider.id}",
           type: t("element_names.#{@service.service_type}")),
           ...
         }

А затем в частичном, используйте их как

a[href=provider_link_href id=provider_link_id]
  Text of the link
...