我的视图中包含以下代码:
.container
.row
.col
h3 Header
- if @status < 5
p Text
- if @status < 5
.col
p More text
如您所见,由于缩进,我两次使用相同的条件。有什么办法可以避免这种情况?
答案 0 :(得分:0)
我认为您唯一可以做的就是重构它。
请在各处使用帮助程序,而不要使用硬编码条件,因此,当您决定将5
更改为6
时,只需在一个位置进行更改。
辅助方法
def valid_status?(status)
status < 5
end
视图(苗条)
.container
.row
.col
h3 Header
- if valid_status?(@status)
p Text
- if valid_status?(@status)
.col
p More text
或者至少一次将值赋给变量
- valid_status = @status < 5
.container
.row
.col
h3 Header
- if valid_status
p Text
- if valid_status
.col
p More text
答案 1 :(得分:0)
您需要将条件提取到Deepak建议的助手中,并使用partial render
提取html代码段。或多或少像这样:
.container
.row
.col
h3 Header
= render "render_text_1" if status_5? # Humanize status code to be more clear
.col
= render "render_text_2" if status_5?
答案 2 :(得分:0)
此标记似乎没什么问题,因此最好的解决方案是保持原样。