gpt4 book ai didi

ruby-on-rails - 有条件地将类添加到 View 中的 HTML 元素的优雅方法是什么?

转载 作者:行者123 更新时间:2023-12-03 04:52:00 25 4
gpt4 key购买 nike

我偶尔需要根据条件向 html 元素添加一个类。问题是我无法找到一种干净的方法。这是我尝试过的示例:

<div <%= if @status = 'success'; "class='ok'"; end %>>
some message here
</div>

<% if @status == 'success' %>
<div class='success'>
<% else %>
<div>
<% end %>
some message here
</div>

我不喜欢第一种方法,因为它看起来很拥挤并且难以阅读。我不喜欢第二种方法,因为嵌套搞砸了。最好将其放入模型中(例如 @status.css_class),但这不属于那里。大多数人做什么?

最佳答案

我使用第一种方法,但语法稍微简洁一些:

<div class="<%= 'ok' if @status == 'success' %>">

尽管通常您应该使用 bool 值 true 或数字记录 ID 来表示成功,使用 bool 值 falsenil 来表示失败。这样你就可以测试你的变量:

<div class="<%= 'ok' if @success %>">

如果您想在两个类之间进行选择,则使用三元 ?: 运算符的第二种形式非常有用:

<div class="<%= @success ? 'good' : 'bad' %>">

最后,您可以使用 Rail 的 record tag helpers例如 div_for,它将根据您提供的记录自动设置您的 ID 和类别。给定一个 ID 为 47 的 Person:

# <div id="person_47" class="person good">
<% div_for @person, class: (@success ? 'good' : 'bad') do %>
<% end %>

关于ruby-on-rails - 有条件地将类添加到 View 中的 HTML 元素的优雅方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2626936/

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