【问题标题】:conditional haml - if else nesting条件haml - if else 嵌套
【发布时间】:2010-12-17 01:20:17
【问题描述】:

我想要的是“if”中的内容和“else”中的内容以包含#main-block。

- if @transparency
  #content-inner{:style => "background: url(../../../images/illustrations/" + @transparency + ") no-repeat 88% 50%"}
- else 
  #content-inner
     #main-block

目前发生的情况是,如果定义了@transparency,则#main-block 不会嵌套在#content-inner 中。

【问题讨论】:

标签: ruby haml


【解决方案1】:

您可以使用三元运算符有条件地应用样式属性:

#content-inner{ :style => @transparency ? "background: url(../../../images/illustrations/" + @transparency + ") no-repeat 88% 50%" : '' }
  #main-block

对于更复杂的安排,例如操作多个哈希属性,最好使用辅助方法,或者将公共内容移动到部分。

【讨论】:

  • 刚刚看到您的回答并想补充一点,如果您必须在该条件内评估 Ruby,您可以像我一样做:.request{ :class => (request.user_id == current_user.id) ? "highlight" : nil }。在我必须如何渲染这个(长故事)的情况下,我无法创建实例变量,因此我评估括号中的 Ruby 以查看此请求对象 belongs_to 是否为 current_user,如果是,我将highlight 类添加到 div。只是想如果其他人还没有弄清楚,我会分享这个花絮。
猜你喜欢
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-31
相关资源
最近更新 更多