這是事情。我有一個按鈕,根據場景,它會表現,看起來有不同的文字。以下是如何呢,大概,看起來像此刻:你會如何在HAML中實施「告訴別人不要」的原則?
- 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是真實的。
所以這是一團糟。最近我讀了很多我非常喜歡的「告訴,不要問」的原則,所以我很樂意在這裏應用它......但我不知道如何。我知道我可以做一個幫手,但我想遠離他們,因爲理由(我真的有一些合理的理由這樣做,但這些超出了這個問題的範圍)。我可以將其作爲最後的資源,但寧可找到另一種解決方案。
問題是,爲什麼要將條件邏輯放入HAML模板而不是控制器中?你比控制器更瞭解控制器內部的情況,所以在切換控制之前計算你的值。在視圖中,您只需渲染輸出,而幾乎不需要使用條件測試。 –
我同意@theTinMan,這種條件邏輯不應該在你看來。要麼在控制器中完成它,要麼至少將其放入幫助器中。 – link664