【发布时间】:2014-03-07 18:55:35
【问题描述】:
我是 Ruby 和 Rails 的新手。我正在遍历一组记录并测试年龄。如果有一条记录超过 14 天,我想设置一个标志,表明这组记录需要注意或“不好”。我正在努力弄清楚如何将变量传递到 erb 循环中,在这种情况下,我使用的是 current_class。
在我的控制器中我有这个代码:
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 的值。有意义吗?
提前致谢。
【问题讨论】:
-
还有一件事。把
else end return current_class写成else current_class end -
你把大家搞糊涂了。
A和B是什么?是bar的值吗?在您的代码中,您没有在任何地方使用@baz。突然间,它出现在已编辑的部分。 -
@KirtiThorat OP 写了
if..else..end块也是错误的方式。 -
OP - 它不应该是
current_class,而不是@current_class。 -
current_class 和@current_class 都不是。它应该是
test_class。
标签: ruby-on-rails ruby erb