视图中的case语句

时间:2010-09-30 03:20:59

标签: ruby-on-rails ruby-on-rails-3

我有一个AuditLog,包括id,action,type,description ......

我想在视图中做的是:

case description
  when "created"
    <li>created styling</li>
  when "deleted"
    <li>deleted styling</li>
  else
    <li>error</li>
end

尝试在视图中学习如何执行此操作以及正确的语法,我在Google上找到的资源没有指定。

3 个答案:

答案 0 :(得分:4)

如果您的样式包含大量标签和HTML元素,我建议将它们分成几部分:

<%= render :partial => @audit_log.description rescue nil %>

如果您descriptioncreated,那么它会将文件_created.html.erb呈现在与当前视图相同的文件夹中

如果是deleted,请自动呈现_deleted.html.erb

如果description是其他没有_something.html.erb文件的内容,则不会显示任何内容(没有rescue nil,会发生错误)

==

如果要在某个不同的文件夹中渲染部分,

<%= render :partial => "some/where/#{@audit_log.description}" %>

答案 1 :(得分:1)

这应该有效:

<%= 
  case @audit_log.description
  when "created" then "created styling"
  when "deleted" then "deleted styling"
  else "error"
  end
%>

答案 2 :(得分:-2)

实际上使用Jquery的addclass函数

会更好更容易