这就是事情。我有一个按钮,根据场景,它会表现,看起来和有不同的文字。现在大概是这样的:
- if params[:param_A] && @statement_A
%span.button.cancel_button{attribute: "value_B"}
- if @statement_B
= t('locale_A')
- else
= t('locale_B')
- elsif params[:param_A]
%span.button.cancel_button{attribute: "value_A"}
- if @statement_B
= t('locale_A')
- else
= t('locale_B')
还有一个CSS类,两个按钮都应该有IF statement_B为真。
所以这是一团糟。我最近读到了非常喜欢的“告诉,不要问”的原则,所以我很乐意在这里应用它...但我不确定如何。
我知道我可以帮助他,但我想远离他们,因为原因(我确实有一些合理的理由这样做,但这些超出了这个问题的范围)。我可以使用它作为最后的资源,但宁愿找到另一种解决方案。
答案 0 :(得分:1)
这与haml无关。您可以从tekll-don'r问题的示例开始:
- if params[:param_A]
%span.button.cancel_button{attribute: @object1.value}
= t(@object2.locale)
或
- if params[:param_A]
%span.button.cancel_button{attribute: @object.value}
= t(@object.locale)
(取决于您的偏好/ A / B的真实含义)
为此,您需要在渲染之前根据语句值初始化对象。