使用 html slim 在 ruby 中创建 href



我正在尝试创建一个href以将用户(提供者)名称与用户(提供者)帐户视图链接起来。

我远非这方面的专家 - 试图从代码中引用用户(提供者)帐户的其他地方复制脚本的一部分。

我尝试添加链接的地方是:

= 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}")),...

并且对它不起作用并不感到惊讶。

您不能将 slim 元素语法(带有方括号的语法,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

最新更新