在 Slim 中使用 Ruby on Rails 有条件地创建隐藏属性
Posted
技术标签:
【中文标题】在 Slim 中使用 Ruby on Rails 有条件地创建隐藏属性【英文标题】:Conditionally creating a hidden attribute in Slim with Ruby on Rails 【发布时间】:2021-08-02 04:22:42 【问题描述】:如果条件为真,我正在尝试让 Slim 生成以下 html:
<div id="start_button" hidden="hidden">
我尝试了各种方法,比如显而易见的:
#start_button #('hidden="hidden"' if CONDITION?)
= link_to 'Get Started', ...etc...
但这会产生:
<div id="start_button">hidden="hidden"
= link_to 'Get Started',..etc...
我知道在将类等属性设置为某物时该怎么做,但是因为“隐藏”必须是全有或全无,这给我带来了问题。
今晚我经历了很多兔子洞,因此感谢您的帮助!
【问题讨论】:
【参考方案1】:这在文档中有说明:
Ruby 属性
在 = 之后直接写 ruby 代码。如果代码包含空格 您必须将代码包装到括号中(...)。你也可以 直接写哈希 ... 和数组 [...]。
因此,()
中的任何内容都被评估为 Ruby 代码,如果该语句被评估为 false,它会以某种方式“跳过”,否则它会执行 true 分支中所述的操作。
#start_button hidden=('hidden' if true)
<div hidden="hidden" id="start_button"></div>
#start_button hidden=('hidden' if false)
<div id="start_button"></div>
【讨论】:
好的,所以我猜它与其他属性相同。我没想到“跳过”位。我认为它会输出<div hidden id="start_button"></div>
,这不好。现在我明白了。谢谢!以上是关于在 Slim 中使用 Ruby on Rails 有条件地创建隐藏属性的主要内容,如果未能解决你的问题,请参考以下文章
Ruby on Rails - 如何在 Rails 方法中使用 HTML 坐标?
思考Ruby On Rails的底层代码(Ruby on Rails 開發秘籍 | Ruby on Rails 快速入門)