【发布时间】:2014-08-09 14:11:30
【问题描述】:
我有一个 Ruby on Rails 应用程序,我用它来显示一些认证日期。我的表格行设置如下:
<tr class='<%= @row_class %>'>data_goes_here</tr>
并且正在使用此代码:
@trainings.each do |training|
%w{drivers_license a_plus network_plus server_plus}.each do |field_name|
if training[field_name] < 45.days.from_now
if training[field_name] < 15.days.from_now
@row_class = 'danger'
break
else
@row_class = 'warning'
break
end
elsif training[field_name] > 45.days.from_now && !@row_class
@row_class = 'success'
end
end
end
将实例变量设置为 Twitter Bootstrap 类名,对应于认证到期前的剩余时间。当我在每个循环结束时运行 puts 语句时,它会输出正确的文本;但是当我加载页面时,唯一通过的类名是“危险”。
我希望逻辑能够正常工作,因此如果其中一个证书是警告或危险,它会退出循环并移动到下一个用户。想法是,如果用户有证书,他们应该被标记为危险或警告类,否则他们应该被标记为成功类。
我是否应该在模型中定义一个变量并为其赋值,而不是尝试通过实例变量?
【问题讨论】:
-
为什么不在你的视图中使用条件类,比如stackoverflow.com/a/2626946/2563282
-
在每个循环中,您都在重置实例变量。所以在视图中,它将设置最后一个值。
-
这就是我注意到的;如何在每个循环中将单个变量传递给模型?
-
可以在视图文件中添加循环吗?
-
我在视图中有循环,但它真的很混乱。正在尝试遵循一些最佳实践并将逻辑移出视图,但将其移回可能是最简单的。
标签: ruby-on-rails ruby twitter-bootstrap