gpt4 book ai didi

ruby-on-rails - 使用 Haml 对象引用,例如%div[@用户]

转载 作者:行者123 更新时间:2023-12-03 15:51:46 24 4
gpt4 key购买 nike

Haml 有一个很好的特性,叫做 Object reference我可以在这里做这样的事情:

%div[user]= user.name

它会生成如下内容:
<div id="user_42" class="user">Billy</div>

有时,我想为该元素创建一个 anchor ,如下所示:
<a href="#user_42">Link to Billy</a>

我如何在哈姆做到这一点?有没有比这更简单的方法?:
%a{ :href=> "#user_#{user.id} } Link to Billy

编辑:可以使用自动包含的 Haml helpers 来完成?

最佳答案

据我所知,没有内置的方法可以做到这一点。如果这是您经常做的事情,我可能会创建一个辅助方法。

def anchor_to(link_text, object)
link_to(link_text, "##{object.class.name.underscore}_#{object.id}")
end

如果您需要处理更多情况(将选项传递给 link_to 等),您可以使该方法更复杂,但是像这样简单的事情会清理一些。生成链接变为:
= anchor_to("Link to Billy", @user)

如果你想使用 Haml 助手,你可以做一些非常相似的事情(但更令人困惑):
def anchor_to(link_text, object)
capture_haml do
haml_tag :a, 'Link to Billy', href: "##{object.class.name.underscore}_#{object.id}"
end
end

虽然,请注意 underscore如果您在 Rails 之外执行此操作,则方法将不可用(这是我能想到的避免使用 link_to 助手的唯一原因)。

关于ruby-on-rails - 使用 Haml 对象引用,例如%div[@用户],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8495415/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com