gpt4 book ai didi

ruby-on-rails - 在 erb 循环中传递变量

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

我是 Ruby 和 Rails 的新手。我正在遍历一组记录并测试年龄。如果有超过 14 天的记录,我想设置一个标志,表明这组记录需要注意或者是“坏的”。我正在努力弄清楚如何将变量传递到 erb 循环中,在本例中我使用的是 current_class。

在我的 Controller 中我有这段代码:

def current_class
@current_class = (params[:current_class])
end

在我的 application_helper 中,我有以下代码:

def name_class(t2 = nil, test_class)
t1 = Time.now
age = (t1 – t2) / 86400
if test_class == nil || “good”
current_class = age >= 14 ? “bad” : “good”
else
end
return current_class
end

在我看来,我有以下代码。

<% foo.each do |bar| %>
<%= name_class bar.created_at, @current_class %>
<%=h current_class %>
<% end %>

输出将是当前节点的评估,但我想要做的是一旦我击中超过 2 周的记录,current_class 将对该集合的其余部分具有“坏”值。关于我做错了什么的任何指示?

为清楚起见,根据要求进行了编辑。

一般来说,我想做的是通过 erb 循环保留一个值。

所以我有一组名为 foo 的 5 条记录。每条记录都有一个名为 bar 的属性:

1 = A
2 = A
3 = B
4 = A
5 = A

当我循环遍历 foo 时,我想将 foo.bar 的值保留在@baz 中。一旦遇到 B 的值,我希望@baz 保留 B 的值。有意义吗?

提前致谢。

最佳答案

您可以在您的 View 中使用它:

    <% @current_class = 'bad' if foo.any?{|bar| name_class(bar) == 'bad'} %>

<% foo.each do |bar| %>
<%= name_class(bar) %>
<%h @current_class %>
<% end %>

第一行代码会检查foo中是否有坏记录,如果有则设置@current_class'bad'是。


在你的辅助方法中:

    def name_class(bar)
t2 = bar.created_at
t1 = Time.now
age = (t1 – t2) / 86400

return age >= 14 ? “bad” : “good”
end

name_class 方法将只检查单个 bar 对象是坏的还是好的

关于ruby-on-rails - 在 erb 循环中传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22258410/

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