我有东西像ID,动作类型,描述的审计日志...Case语句
我想什么在视图中做的是一样的东西:
case description
when "created"
<li>created styling</li>
when "deleted"
<li>deleted styling</li>
else
<li>error</li>
end
试图学习如何在视图中以及在Google上找到的资源没有指定的正确语法来执行此操作。
我有东西像ID,动作类型,描述的审计日志...Case语句
我想什么在视图中做的是一样的东西:
case description
when "created"
<li>created styling</li>
when "deleted"
<li>deleted styling</li>
else
<li>error</li>
end
试图学习如何在视图中以及在Google上找到的资源没有指定的正确语法来执行此操作。
如果你的造型包含大量标签和HTML元素,我建议把它们变成谐音:
<%= render :partial => @audit_log.description rescue nil %>
如果description
是created
,那就在与当前视图相同的文件夹中渲染文件_created.html.erb
如果它是deleted
,则渲染_deleted.html.erb
自动。
如果description
是别的东西,它没有_something.html.erb
文件,那么不会有任何显示(无rescue nil
,错误会发生)
======
如果你想渲染的部分在一些不同的文件夹,
<%= render :partial => "some/where/#{@audit_log.description}" %>
这看起来很不错。 TWhat我不能包裹我的头是我的数据库字段是ID,行动,类型,描述,数据...和数据应该容纳一个具有关联的数据基于类型...所以我希望CASE语句来检测TYPE,然后输出信息。每个TYPE的信息都不一样,这就是为什么我要使用一个充满元数据的数据字段....所以我需要使用CAST来检测类型,然后将它发送到像_auditlogItem.html这样的部分。 erb ....也许在部分内容中,我可以传递基于ACTION类型的字符串,例如“James Bond删除了Book_id。想法? – AnApprentice 2010-09-30 03:45:21
实际上我很困惑你的数据库字段...什么是自然行为,TYPE和DESCRIPTION?所以你首先要确定TYPE,以便正确地获取DATA。然后'deleted','created'是ACTION还是DESCRIPTION? – PeterWong 2010-09-30 03:58:51
示例:1 | CREATED | PHOTO | DATA ....和数据将是一个HASH(我认为这是要走的路,但IDK呢)数据将创建一个观察员{photo_name:“asdadasd”,photo_id:“3131”}这个想法是能够输出没有需要跨多个表加入想法? – AnApprentice 2010-09-30 04:10:39
这应该工作:
<%=
case @audit_log.description
when "created" then "created styling"
when "deleted" then "deleted styling"
else "error"
end
%>
谢谢,一个问题...我想它是HTML的时候....所以当“创建”
也许在'
实际上这将是更好和更容易使用jQuery的addclass功能
[CHEC k this。](http://techspry.com/ruby_and_rails/how-to-write-case-statement-into-views-rails-quick-tips/) 我在这个博客找到了解决方案!希望我帮助:) – Gerry 2011-04-03 11:19:55