这个问题已经被问到,但答案没有奏效。我遇到的问题是这个代码:
.UI_feed_item.deletable.clearfix{ :class => @feed.fav_post ? 'favorited' : '', feed_id: "#{@feed.id}", id: "feed_item_#{@feed.id}" }
*a lot more haml that doesn't have to do with this question*
缩进是正确的 - 它在这里显得很奇怪 如果feed.fav_post为true,我想要添加一个额外的类来说明收藏。由于某种原因,它增加了一个类'true'或'false'。我也试过这个:
.UI_feed_item.deletable.clearfix{ :class => (@feed.fav_post ? 'favorited' : ''), feed_id: "#{@feed.id}", id: "feed_item_#{@feed.id}" }
同样的结果 我不能做一个if / else的事情,因为haml中没有结束,我将不得不重写一百行缩进代码。请帮忙!网上其他解决方案都没有起作用
答案 0 :(得分:0)
你的第二枪应该可以正常工作。第一个变量返回true / false,因为哈希火箭在优先级方面胜过三元运算符 - 但是之后不应该在语法错误上中断?
你可以在haml中执行if-else。
- if true
some stuff here
- else
some other stuff here
使用缩进代替end
。
答案 1 :(得分:0)
HAMLC不支持?/:三元运算符,但您仍然可以使用内联if / then / else实现所需的内容。试试这个:
.UI_feed_item.deletable.clearfix{ :class => "#{ if @feed.fav_post then 'favorited' else '' }", feed_id: "#{@feed.id}", id: "feed_item_#{@feed.id}" }