gpt4 book ai didi

html - 如何在 HAML 中为本地人使用默认值?

转载 作者:数据小太阳 更新时间:2023-10-29 08:10:17 24 4
gpt4 key购买 nike

我有一个 HAML 模板,我想渲染它并选择性地向其提供一个局部变量,这里称为 post,以便它使用提供的变量作为元素属性的值,或者回退到显式默认值。

下面的代码显示了我的意思,但是如果没有提供 post 它就无法运行。有没有一个干净的解决方案?我有很多这样的字段,我宁愿不必用 - if defined? 语句重复它们,这是我能想到的唯一其他选择。

%label
Post title
%input{:name => "title",
:value => (defined? post) ? post.title : ""} }

最佳答案

尝试这样做:

%input{:name => "title", :value => post ? post.title : ""}

您不需要使用 defined 检查,因为 nil 在 Ruby 解释器中被视为 false。此节选自Eloquent Ruby by Russ Olsen最好的描述:

In Ruby, only false and nil are treated as false. Ruby treats everything else--and I do mean everything--as true.

如果这是一个 Rails 应用程序,一个更有说服力的解决方案是使用 Rails try 方法:

%input{:name => "title", :value => post.try(:title)}

try 方法调用由传入类的符号标识的方法,除非类本身是 nil,在这种情况下它将返回 nil (haml 会自动将其转换为空白字符串)。 Read more about the rails try method here .

关于html - 如何在 HAML 中为本地人使用默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8662876/

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